|
1 | 1 | # Changelog |
2 | 2 |
|
| 3 | +## Unreleased: PSA Certified Crypto API 1.4 + PQC extension 1.4 |
| 4 | + |
| 5 | +Upgrade of the public API surface and implementation to PSA Certified |
| 6 | +Crypto API 1.4 Final and the PQC extension 1.4, built against current |
| 7 | +wolfSSL master. |
| 8 | + |
| 9 | +### Breaking changes |
| 10 | + |
| 11 | +- ML-DSA now follows the PSA 1.4 PQC extension: key bits are 128/192/256 |
| 12 | + (security strength, ML-DSA-44/65/87) instead of the previous 2/3/5 |
| 13 | + level convention, and the key-pair import/export format is the 32-byte |
| 14 | + FIPS 204 seed xi (public keys remain raw pk bytes). |
| 15 | +- The nonstandard `psa_ml_dsa_generate_key/sign/verify` exports and the |
| 16 | + `PSA_ML_DSA_PARAMETER_*` / `psa_ml_dsa_parameter_t` macros were removed; |
| 17 | + use the standard PSA key management and signature APIs instead. |
| 18 | + |
| 19 | +### Added |
| 20 | + |
| 21 | +- Key encapsulation: `psa_encapsulate()` / `psa_decapsulate()` with |
| 22 | + PSA_ALG_ML_KEM. ML-KEM key pairs use the 64-byte d||z seed format with |
| 23 | + bits 512/768/1024; the shared secret is returned as a new key. |
| 24 | +- ML-DSA through the standard APIs: hedged and deterministic pure ML-DSA |
| 25 | + via `psa_sign_message`/`psa_verify_message`, plus HashML-DSA variants |
| 26 | + usable through both the message and hash entry points. |
| 27 | +- Context-aware signatures: `psa_sign_message_with_context()`, |
| 28 | + `psa_verify_message_with_context()`, `psa_sign_hash_with_context()`, |
| 29 | + `psa_verify_hash_with_context()` and PSA_ALG_EDDSA_CTX (Ed25519ctx), |
| 30 | + with context support for Ed25519ph/Ed448 and the ML-DSA family. |
| 31 | +- Verify-only LMS/HSS and XMSS/XMSS^MT public-key support through |
| 32 | + `psa_verify_message` (PSA_ALG_LMS/HSS/XMSS/XMSS_MT). |
| 33 | +- XOF API: incremental SHAKE128/SHAKE256 via `psa_xof_setup/update/ |
| 34 | + output/abort` (Ascon XOFs report NOT_SUPPORTED). |
| 35 | +- Key wrapping: `psa_wrap_key()` / `psa_unwrap_key()` with PSA_ALG_KW |
| 36 | + (AES-KW, RFC 3394) and the new WRAP/UNWRAP usage flags (PSA_ALG_KWP |
| 37 | + reports NOT_SUPPORTED). |
| 38 | +- Ascon-Hash256 and Ascon-AEAD128 (one-shot), XChaCha20-Poly1305 |
| 39 | + (one-shot, 24-byte nonce) with the PSA_KEY_TYPE_XCHACHA20/ASCON key |
| 40 | + types. |
| 41 | +- SP800-108r1 counter-mode KDFs: PSA_ALG_SP800_108_COUNTER_HMAC(hash) |
| 42 | + and PSA_ALG_SP800_108_COUNTER_CMAC. |
| 43 | +- `psa_check_key_usage()`, `psa_generate_key_custom()` and |
| 44 | + `psa_key_derivation_output_key_custom()` (default parameters only). |
| 45 | +- 1.4 semantic change: ECDSA and deterministic ECDSA are treated as |
| 46 | + equivalent when verifying signatures. |
| 47 | +- Complete 1.4 macro surface: PQC classifier/encoding macros (ML-DSA, |
| 48 | + ML-KEM, SLH-DSA, LMS/HSS, XMSS), WPA3-SAE values, encapsulation and |
| 49 | + key-wrap size macros, hash-suspend format constants, and PQC arms in |
| 50 | + the signature/export size macros (PSA_SIGNATURE_MAX_SIZE is now 4627). |
| 51 | +- Stubs returning PSA_ERROR_NOT_SUPPORTED for the interruptible |
| 52 | + operations, `psa_attach_key()` and `psa_hash_suspend/resume()`. |
| 53 | + SLH-DSA key types are recognized but report NOT_SUPPORTED. |
| 54 | +- New coverage tests: ML-DSA, ML-KEM/KEM API, XOF, AES-KW, signature |
| 55 | + contexts, LMS/XMSS verify, Ascon/XChaCha, SP800-108 and 1.4 misc. |
| 56 | + |
| 57 | + |
3 | 58 | ## v5.9.1 |
4 | 59 |
|
5 | 60 | Initial official release of `wolfPSA`. This project follows wolfSSL version numbering. |
|
0 commit comments