Repository navigation
v0.4.7 — SP 800-208 Full LMS/XMSS + NIST ACVP Validation
·
1800 commits
to main
since this release
SP 800-208 Full Parameter Coverage + NIST ACVP Validation
Added
- All SP 800-208 parameter sets: 20 LMS + 16 LMOTS combinations (SHA-256 N32/N24, SHAKE-256 N32/N24) across C++ and Rust engines
- C++
StatefulVerifyInit/StatefulVerify: HSS/LMS/XMSS/XMSS^MT signature verification via PKCS#11C_VerifyInit/C_Verify - SHAKE-256 hash type: Added to hash-sigs C library using OpenSSL
EVP_shake256() - XMSS/XMSS^MT in
C_GetMechanismInfo: Registered withCKF_SIGN | CKF_VERIFY - Rust N24/SHAKE dispatch:
Sha256_192,Shake256_256,Shake256_192via hbs-lms 0.1.1 - NIST ACVP LMS sigVer: 320/320 official demo vectors validated — all 80 parameter combinations
- Source: usnistgov/ACVP-Server
- Test runner:
tests/test_acvp_lms_sigver.py
Fixed
- XMSS keygen buffer overflow: pk/sk buffers now account for 4-byte OID prefix (
XMSS_OID_LEN) - XMSS
C_SignPKCS#11 v3.2 compliance: Returns signature-only (was returningsig||msg) - XMSS^MT keygen: Uses
xmssmt_parse_oidinstead ofxmss_parse_oid - CKP_ constants: Corrected to IANA registry type IDs per RFC 8554 + SP 800-208
- Gap analysis G10: Updated from "out of scope" to RESOLVED
Validation
| Test Suite | Result |
|---|---|
| NIST ACVP LMS sigVer | 320/320 match |
| Stateful sign/verify (HSS + XMSS) | 26/26 PASS |
| KAT determinism (XMSS + HSS) | PASS |
| Existing ACVP (ML-KEM, ML-DSA, SLH-DSA, classical) | 62/62 PASS |
🤖 Generated with Claude Code