Upgrade of the public API surface and implementation to PSA Certified Crypto API 1.4 Final and the PQC extension 1.4, built against current wolfSSL master.
- ML-DSA now follows the PSA 1.4 PQC extension: key bits are 128/192/256 (security strength, ML-DSA-44/65/87) instead of the previous 2/3/5 level convention, and the key-pair import/export format is the 32-byte FIPS 204 seed xi (public keys remain raw pk bytes).
- The nonstandard
psa_ml_dsa_generate_key/sign/verifyexports and thePSA_ML_DSA_PARAMETER_*/psa_ml_dsa_parameter_tmacros were removed; use the standard PSA key management and signature APIs instead.
- Key encapsulation:
psa_encapsulate()/psa_decapsulate()with PSA_ALG_ML_KEM. ML-KEM key pairs use the 64-byte d||z seed format with bits 512/768/1024; the shared secret is returned as a new key. - ML-DSA through the standard APIs: hedged and deterministic pure ML-DSA
via
psa_sign_message/psa_verify_message, plus HashML-DSA variants usable through both the message and hash entry points. - Context-aware signatures:
psa_sign_message_with_context(),psa_verify_message_with_context(),psa_sign_hash_with_context(),psa_verify_hash_with_context()and PSA_ALG_EDDSA_CTX (Ed25519ctx), with context support for Ed25519ph/Ed448 and the ML-DSA family. - Verify-only LMS/HSS and XMSS/XMSS^MT public-key support through
psa_verify_message(PSA_ALG_LMS/HSS/XMSS/XMSS_MT). - XOF API: incremental SHAKE128/SHAKE256 via
psa_xof_setup/update/ output/abort(Ascon XOFs report NOT_SUPPORTED). - Key wrapping:
psa_wrap_key()/psa_unwrap_key()with PSA_ALG_KW (AES-KW, RFC 3394) and the new WRAP/UNWRAP usage flags (PSA_ALG_KWP reports NOT_SUPPORTED). - Ascon-Hash256 and Ascon-AEAD128 (one-shot), XChaCha20-Poly1305 (one-shot, 24-byte nonce) with the PSA_KEY_TYPE_XCHACHA20/ASCON key types.
- SP800-108r1 counter-mode KDFs: PSA_ALG_SP800_108_COUNTER_HMAC(hash) and PSA_ALG_SP800_108_COUNTER_CMAC.
psa_check_key_usage(),psa_generate_key_custom()andpsa_key_derivation_output_key_custom()(default parameters only).- 1.4 semantic change: ECDSA and deterministic ECDSA are treated as equivalent when verifying signatures.
- Complete 1.4 macro surface: PQC classifier/encoding macros (ML-DSA, ML-KEM, SLH-DSA, LMS/HSS, XMSS), WPA3-SAE values, encapsulation and key-wrap size macros, hash-suspend format constants, and PQC arms in the signature/export size macros (PSA_SIGNATURE_MAX_SIZE is now 4627).
- Stubs returning PSA_ERROR_NOT_SUPPORTED for the interruptible
operations,
psa_attach_key()andpsa_hash_suspend/resume(). SLH-DSA key types are recognized but report NOT_SUPPORTED. - New coverage tests: ML-DSA, ML-KEM/KEM API, XOF, AES-KW, signature contexts, LMS/XMSS verify, Ascon/XChaCha, SP800-108 and 1.4 misc.
Initial official release of wolfPSA. This project follows wolfSSL version numbering.
- First public wolfPSA release: a PSA Crypto engine implemented in C on top of wolfCrypt.
- Provides PSA Crypto API entry points intended for PSA clients such as wolfSSL built with
WOLFSSL_HAVE_PSAand the Arm PSA Architecture Test Suite. - Ships both static and shared builds:
libwolfpsa.aandlibwolfpsa.so. - Includes core PSA lifecycle, random generation, key management, key storage, cipher, AEAD, hash, MAC, asymmetric crypto, key derivation, and TLS 1.3 PRF/HKDF support.
- Symmetric crypto coverage includes AES, ChaCha20, ChaCha20-Poly1305, and configured legacy compatibility paths such as DES/3DES where enabled.
- Hash and MAC support includes SHA-1, SHA-2, SHA-3, HMAC, CMAC, plus configured compatibility support for MD5 and RIPEMD-160.
- Asymmetric crypto support includes RSA, ECC/ECDSA/ECDH, Curve25519/Curve448, and Ed25519/Ed448.
- Includes persistent PSA key storage with a default POSIX filesystem-backed store for local and test deployments.
- Includes post-quantum and hash-based crypto integration sources for builds that enable wolfCrypt support, including ML-KEM, ML-DSA, LMS, and XMSS.
- Includes standalone integration tests and demos for PSA API calls, PSA-backed wolfCrypt benchmarking, and a TLS server/client flow using PSA-managed keys and certificate pinning.
- Includes target integration and scripts for running the Arm PSA Architecture Test Suite; current documented crypto results are 65 passed tests, 13 skipped, and 0 failed.