Skip to content

pqcrypto v0.3.0

Choose a tag to compare

@turkananation turkananation released this 05 Jun 16:06
· 43 commits to develop since this release
v0.3.0
cd17faa

🔐 ML-DSA (FIPS 204) — NEW

Full FIPS 204-aligned ML-DSA digital signature support:

  • ML-DSA-44, ML-DSA-65, ML-DSA-87 — all three parameter sets
  • Byte-exact against the official NIST KAT corpus (300 keygen + 1800 signatures)
  • External API: sign/verify with context strings, hedged-by-default signing
  • HashML-DSA: hashSign/hashVerify with FIPS 204 §5.4 SHA-2 pre-hash
  • Deterministic and hedged modes, both raw and external flavors

🛡️ ML-KEM Hardening

  • Constant-time branchless output selection in decapsulation
  • Secret intermediate zeroization in finally blocks
  • 3000-vector KAT corpus remains byte-exact

📦 Zero Dependencies

  • Vendored FIPS 180-4 SHA-2 (SHA-256/384/512) with web-safe 64-bit arithmetic
  • Pure Dart, no external runtime dependencies
  • Flutter and Web (Wasm/JS) compatible

🔧 Additional

  • Project-level Universal Multi-Agent PQC Framework setup
  • example/main.dart now demonstrates ML-KEM + ML-DSA handshake
  • doc/SERVERPOD_FLUTTER_GUIDE.md for Serverpod/Flutter integration

🐛 Fixed

  • RejBoundedPoly (ExpandS) for η=2: correct half-byte acceptance per FIPS 204, fixing key generation divergence
  • ML-DSA verification no longer overflows with 32-bit left shift on dart2js

⚠️ Claim Boundary

This release makes no CMVP/FIPS 140 module validation claim. Conformance evidence is the checked-in KAT corpus and regression suite. See doc/FIPS_140_BOUNDARY.md for details.


Install: dart pub add pqcrypto or add pqcrypto: ^0.3.0 to your pubspec.yaml

pub.dev: https://pub.dev/packages/pqcrypto