-
Notifications
You must be signed in to change notification settings - Fork 4
Bouncy Castle Rust Roadmap
This alpha release includes the following cryptographic primitives:
- Hex (constant-time)
- Base64 (constant-time)
- SHA-2
- SHA-3
- HMAC
- HKDF
- The NIST HashDRBG random number generator
- ML-DSA
- Provider-style factory objects, and a command-line interface for all of the above.
But more than anything, the alpha release focuses on the design of the public trait and error type system contained in the core-interface sub-crate.
Next up will be to round out the set of cryptographic primitives:
- Block ciphers (AES and maybe ascon)
- Signatures (Ed25519, Ed448, SLH-DSA)
- Key Establishment (X25519, X448, ML-KEM)
(yes, you have noticed that RSA, ECDSA and ECDH are not on the list. I suppose we could, but we'd really rather not.)
After that, we'll tackle in some kind of order (depending on public interest and funding):
- PKIX (DER, X.509, CMS, CMP)
- TLS 1.3
- JWT & CWT
- PKCS#11 passthrough -- ie high-level APIs work the same regardless of whether it's using local software keys and crypto, or hardware-backed crypto.
- FIPS certification framework and test harnesses
- Refining the library's build system (no_std, feature granularity, build and release packaging, etc)
As this is an alpha release, we're eagerly looking for feedback from the community. We would especially like feedback on the following areas:
- Public API ergonomics and granularity of exposed functionality.
- Certification / compliance concerns.
- Prioritization of roadmap items above.
You can reach us at office@bouncycastle.org or mike@bouncycastle.org.
Sincerely, Mike Ounsworth Lead Maintainer of BC-Rust, on behalf of the Legion of the Bouncy Castle and the entire Bouncy Castle community