Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Investigate compliance of loading CKBI multiple times #15

Open
JeremyRand opened this issue Dec 5, 2018 · 1 comment
Open

Investigate compliance of loading CKBI multiple times #15

JeremyRand opened this issue Dec 5, 2018 · 1 comment

Comments

@JeremyRand
Copy link
Member

The pkcs11 spec says that an application shouldn't load the same module multiple times. This poses some interesting questions given our use case. We want to have a CKBI proxy module (or perhaps multiple CKBI proxy modules). Each CKBI proxy module wants to load the CKBI module, and NSS will load CKBI itself once as well. The spec seems to be unclear on whether we can do this. Specific questions:

  1. What is the definition of an application? Specifically, if an application A loads modules C and P, and module P then loads module C as well, does this constitute application A loading module C multiple times?
  2. What is the definition of a module? Specifically, if an application A opens the module "c1.so" and the module "c2.so", where both files have identical contents and deterministically behave identically, does the different filename cause them to be considered different modules, or are they the same module? What properties besides filename do or do not cause two .so files to be considered different modules?

My Google-fu seems to be failing on this one. Might be easiest to just ask on StackExchange.

@JeremyRand
Copy link
Member Author

FWIW, ncp11 (as of 0465cbb ) proxies to CKBI, and this doesn't seem to cause any problems; Firefox and ncp11 both seem to load CKBI just fine.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant