PKCS#11 support
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 7.8k
- Forks
- 1.8k
- Avg merge
- 7h 48m
- Merged PRs (30d)
- 157
Description
In a conversation (#13115) with @alex, it was determined that neither this project nor pyOpenSSL will likely move to support the OpenSSL provider interface. Without OpenSSL providers, the likely approach will have to be direct support for these functions through the implementation of the key primitives (cryptography.hazmat.primitives.asymmetric). I believe PKCS#11 support is the best approach for supporting HSMs, SmartCards, and TPM2 modules, as it provides a standardized and broadly supported interface for a broad range of cryptographic hardware and services (eg. CloudHSM). Currently there is a high level PKCS#11 library in Python, as well as rust-cryptoki which provides both a high level wrapper as well as access to the low level bindgen. Both bind to the same library, it would just depend on which of these options seems more suitable, alternatively we could manage the rust bindgen in this project directly.
This is something I'd be willing to work on. I have a good amount of Rust, Python, and C experience as well as familiarity of the PKCS#11 standard.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with conversation #13115 and the cryptography.hazmat.primitives.asymmetric entry points mentioned in the issue. Compare the high-level Python PKCS#11 library, rust-cryptoki, and direct Rust bindgen options. Done means the project has an agreed and implemented PKCS#11 support path for HSMs, SmartCards, or TPM2 modules.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, python, rust
- Domain
- cryptography, security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 32/100