Repository navigation
v0.45.1 (2026-10-23)
This release focuses on correctness fixes, input validation, and security hardening.
Highlights
- Fixed RVV XTS tweak handling for wider vector lengths and a rare ML-DSA AVX2 NTT multiply-accumulate error.
- Hardened SM9 point/key decoding and signature verification, including malformed ASN.1 inputs; improved constant-time behavior in BN256.
- Restricted ML-KEM shared-key slice capacity to prevent callers from reslicing into adjacent secret randomness.
- Made malformed PKCS/CFCA cipher parameters return errors instead of panicking; tightened PKCS#7 BER and ISO 9797-1 Method 2 padding validation.
Testing and Tooling
- Added adversarial semantic vectors for SM2, SM3/KDF, SM4, SM9, ZUC, ML-KEM, ML-DSA, and DER/BER parsing.
- Expanded multi-architecture differential testing and fuzzing. Added gosec scanning and expanded CodeQL coverage.
Documentation and Dependencies
- Added SM2 and SM9 security considerations; made the English README the default and retained the Chinese README.
- Updated
golang.org/x/cryptoto v0.58.0 andgolang.org/x/systo v0.49.0. The Go baseline remains 1.26.
Compatibility note: SM2 public-key parsing now explicitly requires uncompressed point encoding. Malformed and non-canonical inputs that were previously accepted or could panic are now rejected or return errors.