Skip to content

v0.45.1 (2026-10-23)

Choose a tag to compare

@emmansun emmansun released this 23 Oct 05:22
· 7 commits to main since this release
66403bf

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/crypto to v0.58.0 and golang.org/x/sys to 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.