Skip to content

Add ML-DSA-87 support#14604

Merged
reaperhulk merged 1 commit intomainfrom
claude/add-mldsa87-support-LKbff
Apr 8, 2026
Merged

Add ML-DSA-87 support#14604
reaperhulk merged 1 commit intomainfrom
claude/add-mldsa87-support-LKbff

Conversation

@alex
Copy link
Copy Markdown
Member

@alex alex commented Apr 8, 2026

Summary

  • Adds ML-DSA-87 (FIPS 204, security level 5) support alongside existing ML-DSA-44 and ML-DSA-65, following the same pattern established in Add ML-DSA-44 support alongside existing ML-DSA-65 #14591
  • ML-DSA-87 parameters: 2592-byte public key, 4627-byte signature, 32-byte seed, OID 2.16.840.1.101.3.4.3.19
  • Includes full Rust FFI bindings, PyO3 backend, Python API, key parsing (PKCS#8/SPKI), tests (parametrized + KAT vectors + wycheproof), and documentation

Test plan

  • Parametrized test suite (sign/verify, serialization, context, equality, copy) runs for ML-DSA-87 variant
  • KAT vectors (kat_MLDSA_87_det_pure.rsp) pass for sign/verify correctness
  • Wycheproof tests for ML-DSA-87 verify and sign-seed (when vectors are available)
  • Unsupported backend tests cover ML-DSA-87
  • PKCS#8 and SPKI round-trip serialization works for ML-DSA-87 keys

https://claude.ai/code/session_01QECqvbJeeJ36drLAigR6E1

Extends the ML-DSA implementation to support the ML-DSA-87 security
level (FIPS 204), following the same pattern established by ML-DSA-44
and ML-DSA-65 support.

ML-DSA-87 parameters:
- Public key: 2592 bytes
- Signature: 4627 bytes
- Seed: 32 bytes
- OID: 2.16.840.1.101.3.4.3.19

https://claude.ai/code/session_01QECqvbJeeJ36drLAigR6E1
@reaperhulk reaperhulk merged commit 40cdfe1 into main Apr 8, 2026
68 checks passed
@reaperhulk reaperhulk deleted the claude/add-mldsa87-support-LKbff branch April 8, 2026 03:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants