Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
P
poppler
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 613
    • Issues 613
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 40
    • Merge Requests 40
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • poppler
  • poppler
  • Merge Requests
  • !264

Open
Opened Apr 29, 2019 by Marek Kasik@mkasikGuest
  • Report abuse
Report abuse

Implement crypto using NSS

  • Overview 20
  • Commits 2
  • Pipelines 13
  • Changes 14

Hi, I was asked by our security team to implement crypto methods used in poppler by a FIPS validated crypto module. One of the main reasons is validation of the implementation of those algorithms. If it is implemented using already validated module then we don't need to validate the implementation in poppler.

This is related to the ongoing effort "Fedora Crypto Consolidation" (see https://fedoraproject.org/wiki/Fedora_Crypto_Consolidation). There are listed 4 crypto libraries on the page: NSS, GnuTLS, OpenSSL and libgcrypt. I've chosen NSS for this task since poppler already uses it (as discussed in https://bugs.freedesktop.org/show_bug.cgi?id=16770).

The original implementation is still available if you build poppler without NSS.

I have to note that NSS is the only library which does not reject non-approved algorithms in FIPS mode so they still work even in FIPS mode (which can change in the future).

I should also note why I don't NSS_Shutdown() the NSS database. Because the shutdown takes some time and if you do it e.g. 20 times for different objects then there is quite some delay even for 1 page document. Could GlobalParams be used for this? E.g. a function for initialization of the NSS database as a method there and the shutdown in GlobalParams' destructor?

Assignee
Assign to
Reviewer
Request review from
None
Milestone
None
Assign milestone
Time tracking
Reference: poppler/poppler!264
Source branch: implement-crypto-using-NSS