Skip to content

Releases: turkananation/pqcrypto

pqcrypto v0.4.1

Choose a tag to compare

@turkananation turkananation released this 11 Aug 09:25
Immutable release. Only release title and notes can be modified.
v0.4.1
fdf2015

What's Changed

Full Changelog: v0.3.1...v0.4.1

pqcrypto 0.4.0

Choose a tag to compare

@turkananation turkananation released this 18 Jun 11:55
Immutable release. Only release title and notes can be modified.
fdf2015

Added

  • Added FIPS 205 SLH-DSA for all 12 parameter sets — both hash families
    (SHAKE and SHA-2) across 128/192/256 and the small/fast s/f variants —
    exported at the package root as SlhDsa, SlhDsaParams, SlhDsaParameter,
    and SlhDsaPreHash. Internal Algorithms 18-20 stay source-only for ACVP
    execution; WOTS+/XMSS/hypertree/FORS remain internal components, not public
    APIs.
  • Added the pinned official NIST ACVP SLH-DSA sample corpus for all 12
    parameter sets (1,248 keyGen/sigGen/sigVer cases), with source provenance,
    SHA-256 integrity checks, and ACVP structure/coverage tests. A VM-only ACVP
    runner is byte-exact on all 1,248 cases.
  • Vendored the SHA-2-family primitives beneath the six SHA-2 sets: HMAC-SHA-256/512
    (RFC 4231) and MGF1-SHA-256/512 (RFC 8017), each independently KAT-gated, plus
    the 22-byte compressed address (ADRS^c) and the security-category 1 vs 3/5
    SHA-256/SHA-512 instantiation split. Added SHA-224, SHA-512/224, and
    SHA-512/256 to the vendored FIPS 180-4 core for the complete HashSLH-DSA
    pre-hash matrix.
  • Implemented the FIPS 205 component and signature algorithms (5-25) with
    portable BigInt tree indices, hedged-by-default signing, explicit
    deterministic and slow-signing (allowSlowSigning) paths, context binding
    (<= 255 bytes), HashSLH-DSA pre-hash with DER OIDs, optional verify-after-sign
    fault detection, best-effort secret zeroization, and total malformed-input
    verification (length-checked before parsing).
  • Added component, negative, and package-root API/misuse tests, and a portable
    SLH-DSA benchmark harness covering all 12 sets. Published single-sample
    keygen/sign/verify baselines under VM JIT, compiled JavaScript, and compiled
    Wasm.
  • Added SHA3-224 and SHA3-384 to the vendored FIPS 202 implementation, direct
    Keccak-f[1600] constants/profile tests, and a normalized selected NIST
    byte-example corpus with source provenance.

Changed

  • Added explicit Keccak sponge/output validation and broader VM/web regression
    coverage for rate boundaries and incremental XOF squeezing.
  • Surfaced the SLH-DSA message-bound (BUFF), deterministic-signing,
    slow-parameter, RBG, and best-effort zeroization boundaries in API and release
    documentation. This remains KAT/regression evidence, not a CMVP/FIPS 140
    validation claim.
  • Promoted SLH-DSA to a first-class released algorithm alongside ML-KEM and
    ML-DSA: the package version is now 0.4.0, and the generated website,
    AI-discovery files, and coding-agent rules list all 12 SLH-DSA sets with
    1,248/1,248 ACVP evidence as part of the 0.4.0 surface.

pqcrypto v0.3.1

Choose a tag to compare

@turkananation turkananation released this 05 Jun 17:09
v0.3.1
ee96ac4

📝 Metadata Update

Updated pubspec.yaml description to accurately reflect full FIPS 204 ML-DSA support, removing the "experimental" label, and highlighting the zero-dependency architecture.

No code changes.

pqcrypto v0.3.0

Choose a tag to compare

@turkananation turkananation released this 05 Jun 16:06
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