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

Add initial support for ML-DSA, SLH-DSA, and ML-KEM keys and signatures #132

Closed
CBonnell opened this issue Nov 15, 2024 · 1 comment · Fixed by #145
Closed

Add initial support for ML-DSA, SLH-DSA, and ML-KEM keys and signatures #132

CBonnell opened this issue Nov 15, 2024 · 1 comment · Fixed by #145
Labels
enhancement New feature or request

Comments

@CBonnell
Copy link
Collaborator

Now that there are official OIDs from NIST, initial support for the three new PQC algorithms can be added.

Initially, signature verification will not be supported as there are no easy-to-install open-source libraries available with the FIPS/final versions of these algorithms yet.

For now, we can at least recognize the OIDs and attempt to deserialize the key (and maybe signature) to detect encoding errors.

@CBonnell CBonnell added the enhancement New feature or request label Nov 15, 2024
@CBonnell CBonnell changed the title Add initial support for ML-DSA, SLH-DSA, and ML-KEM key and signatures Add initial support for ML-DSA, SLH-DSA, and ML-KEM keys and signatures Nov 15, 2024
@CBonnell
Copy link
Collaborator Author

CBonnell commented Jan 10, 2025

The following features have been added:

  • Decoding of algorithm identifiers
  • Decoding of public keys
  • Key usage extension checks
  • Check for use of pre-hash variants of ML-DSA and SLH-DSA in CA certificates
  • Detection of historical/obsoleted versions of ML-DSA, SLH-DSA, and ML-KEM

Signature validation has not been added yet, as there are no open-source Python libraries to support this. As such, self-issued (generally root) certificates that do not contain an AKI extension but use ML-DSA or SLH-DSA will encounter a NOTICE-level finding, as it cannot be determined whether the certificate is self-signed. Once such a library is made available, support for signature validation will be added.

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

Successfully merging a pull request may close this issue.

1 participant