|
| 1 | +# wolfHSM Release v1.5.0 (August 21, 2026) |
| 2 | + |
| 3 | +Due to NDA restrictions, access to the Infineon, ST Micro, TI, and Renesas ports is limited. Please contact [support@wolfssl.com](mailto:support@wolfssl.com) for access. |
| 4 | + |
| 5 | +## New Feature Additions |
| 6 | +* Added non-blocking request/response client APIs for SHA, RNG, AES, RSA, ECC, and CMAC operations in https://github.com/wolfSSL/wolfHSM/pull/337, https://github.com/wolfSSL/wolfHSM/pull/344, https://github.com/wolfSSL/wolfHSM/pull/347, https://github.com/wolfSSL/wolfHSM/pull/351, https://github.com/wolfSSL/wolfHSM/pull/368, and https://github.com/wolfSSL/wolfHSM/pull/381 |
| 7 | +* Added ML-KEM (FIPS 203) support for key generation, encapsulation, and decapsulation with DMA variants in https://github.com/wolfSSL/wolfHSM/pull/336 |
| 8 | +* Added LMS and XMSS stateful hash-based signature support in https://github.com/wolfSSL/wolfHSM/pull/352 |
| 9 | +* Added SHA-3 support with blocking wolfCrypt and non-blocking native APIs in https://github.com/wolfSSL/wolfHSM/pull/384 |
| 10 | +* Added DMA support for AES-ECB, AES-CBC, and AES-CTR and reworked AES-GCM DMA handling in https://github.com/wolfSSL/wolfHSM/pull/282 |
| 11 | +* Added authentication manager with user login, per-user permissions, and NVM-backed credential storage in https://github.com/wolfSSL/wolfHSM/pull/270, https://github.com/wolfSSL/wolfHSM/pull/290, https://github.com/wolfSSL/wolfHSM/pull/382, and https://github.com/wolfSSL/wolfHSM/pull/386 |
| 12 | +* Added client response timeout support with optional expiration callback in https://github.com/wolfSSL/wolfHSM/pull/278 |
| 13 | +* Added STM32H5 TrustZone port with non-secure callable bridge transport in https://github.com/wolfSSL/wolfHSM/pull/348 |
| 14 | +* Added per-client wolfCrypt device IDs enabling multiple clients in a single process in https://github.com/wolfSSL/wolfHSM/pull/406 |
| 15 | +* Added client API to select hardware or software crypto processing at runtime in https://github.com/wolfSSL/wolfHSM/pull/281 |
| 16 | +* Added hardware-only key support allowing server operations to reference keys held in hardware in https://github.com/wolfSSL/wolfHSM/pull/409 |
| 17 | +* Added public key export for cached asymmetric keys, including returning the public key from cached key generation in https://github.com/wolfSSL/wolfHSM/pull/346 and https://github.com/wolfSSL/wolfHSM/pull/458 |
| 18 | +* Added cache-only shared secrets keeping ECDH and X25519 outputs server-resident in https://github.com/wolfSSL/wolfHSM/pull/372 |
| 19 | +* Added client API to generate and cache a random key on the server in https://github.com/wolfSSL/wolfHSM/pull/437 |
| 20 | +* Added multi-root CA certificate chain verification in https://github.com/wolfSSL/wolfHSM/pull/350 |
| 21 | +* Added trusted certificate cache and certificate verification callbacks in https://github.com/wolfSSL/wolfHSM/pull/353 |
| 22 | +* Added wolfBoot image verification to the image manager in https://github.com/wolfSSL/wolfHSM/pull/339 |
| 23 | +* Added global SHE key support enabling SHE key slots to be shared across all clients in https://github.com/wolfSSL/wolfHSM/pull/478 |
| 24 | +* Added SHE GET_ID command and key wrap interoperability with SHE keys in https://github.com/wolfSSL/wolfHSM/pull/450 and https://github.com/wolfSSL/wolfHSM/pull/413 |
| 25 | +* Added support for running the server without NVM using the key cache only in https://github.com/wolfSSL/wolfHSM/pull/392 |
| 26 | +* Added CRC integrity checking to the NVM flash backend in https://github.com/wolfSSL/wolfHSM/pull/503 |
| 27 | +* Added support for dynamically linking libwolfssl in https://github.com/wolfSSL/wolfHSM/pull/349 |
| 28 | + |
| 29 | +## Bug Fixes |
| 30 | +* Bounded peer-controlled lengths in client and server transport receive paths in https://github.com/wolfSSL/wolfHSM/pull/388, https://github.com/wolfSSL/wolfHSM/pull/389, and https://github.com/wolfSSL/wolfHSM/pull/410 |
| 31 | +* Validated server-reported lengths and payload sizes in client crypto response handlers in https://github.com/wolfSSL/wolfHSM/pull/361, https://github.com/wolfSSL/wolfHSM/pull/366, https://github.com/wolfSSL/wolfHSM/pull/367, https://github.com/wolfSSL/wolfHSM/pull/373, https://github.com/wolfSSL/wolfHSM/pull/374, https://github.com/wolfSSL/wolfHSM/pull/375, https://github.com/wolfSSL/wolfHSM/pull/376, https://github.com/wolfSSL/wolfHSM/pull/463, https://github.com/wolfSSL/wolfHSM/pull/465, https://github.com/wolfSSL/wolfHSM/pull/467, https://github.com/wolfSSL/wolfHSM/pull/473, and https://github.com/wolfSSL/wolfHSM/pull/474 |
| 32 | +* Bounded AES, LMS, XMSS, and ML-KEM DMA response frames in the crypto client in https://github.com/wolfSSL/wolfHSM/pull/475 and https://github.com/wolfSSL/wolfHSM/pull/476 |
| 33 | +* Added request and response size validation to server request handlers, keystore, and crypto request translation in https://github.com/wolfSSL/wolfHSM/pull/299, https://github.com/wolfSSL/wolfHSM/pull/302, and https://github.com/wolfSSL/wolfHSM/pull/466 |
| 34 | +* Fixed key wrap request and response bounds, metadata trailer translation, and a data unwrap bug in https://github.com/wolfSSL/wolfHSM/pull/323, https://github.com/wolfSSL/wolfHSM/pull/359, https://github.com/wolfSSL/wolfHSM/pull/472, https://github.com/wolfSSL/wolfHSM/pull/494, and https://github.com/wolfSSL/wolfHSM/pull/510 |
| 35 | +* Added bounds checks to SHE client requests and responses and bounded SHE server key loads in https://github.com/wolfSSL/wolfHSM/pull/334, https://github.com/wolfSSL/wolfHSM/pull/457, and https://github.com/wolfSSL/wolfHSM/pull/495 |
| 36 | +* Fixed certificate handlers to validate inputs, check response lengths, capture verification results, and stop transmitting unwritten response bytes in https://github.com/wolfSSL/wolfHSM/pull/317, https://github.com/wolfSSL/wolfHSM/pull/365, https://github.com/wolfSSL/wolfHSM/pull/390, https://github.com/wolfSSL/wolfHSM/pull/426, and https://github.com/wolfSSL/wolfHSM/pull/459 |
| 37 | +* Fixed certificate verify message padding differences between clients and servers with different ABIs in https://github.com/wolfSSL/wolfHSM/pull/507 |
| 38 | +* Fixed client DMA address translation and a use-after-free in key, NVM, and certificate DMA operations in https://github.com/wolfSSL/wolfHSM/pull/403 and https://github.com/wolfSSL/wolfHSM/pull/408 |
| 39 | +* Fixed integer overflow in the DMA allow list boundary check, improved server DMA validation, and ensured DMA post-operation callbacks run on error paths in https://github.com/wolfSSL/wolfHSM/pull/298, https://github.com/wolfSSL/wolfHSM/pull/329, https://github.com/wolfSSL/wolfHSM/pull/324, and https://github.com/wolfSSL/wolfHSM/pull/340 |
| 40 | +* Fixed integer underflow in AES-GCM unwrap size calculations, missing AES context free on set-key failure, and AES-CTR bounds checking in https://github.com/wolfSSL/wolfHSM/pull/296, https://github.com/wolfSSL/wolfHSM/pull/306, https://github.com/wolfSSL/wolfHSM/pull/307, and https://github.com/wolfSSL/wolfHSM/pull/379 |
| 41 | +* Fixed overflow-prone bounds checks in NVM read handlers and 32-bit size_t overflow in AES and SHE size checks in https://github.com/wolfSSL/wolfHSM/pull/319 and https://github.com/wolfSSL/wolfHSM/pull/487 |
| 42 | +* Fixed SHE server secure boot chunk sizing, master ECU key metadata, constant-time comparison, and stack buffer zeroization in https://github.com/wolfSSL/wolfHSM/pull/293, https://github.com/wolfSSL/wolfHSM/pull/294, https://github.com/wolfSSL/wolfHSM/pull/310, https://github.com/wolfSSL/wolfHSM/pull/325, https://github.com/wolfSSL/wolfHSM/pull/326, and https://github.com/wolfSSL/wolfHSM/pull/332 |
| 43 | +* Fixed metadata label leak in key export error responses and stripped server-only flags from client metadata when caching random keys in https://github.com/wolfSSL/wolfHSM/pull/316 and https://github.com/wolfSSL/wolfHSM/pull/496 |
| 44 | +* Fixed NVM destroy batches aborting on absent IDs, NULL metadata handling in the checked add path, and committed state for keys read back from NVM in https://github.com/wolfSSL/wolfHSM/pull/461, https://github.com/wolfSSL/wolfHSM/pull/462, and https://github.com/wolfSSL/wolfHSM/pull/401 |
| 45 | +* Improved NVM locking across the crypto layer to prevent races on shared key caches in https://github.com/wolfSSL/wolfHSM/pull/438 |
| 46 | +* Fixed authentication manager to log out users on disconnect, enforce caller identity, refresh stale session permissions, and zeroize request messages in https://github.com/wolfSSL/wolfHSM/pull/383, https://github.com/wolfSSL/wolfHSM/pull/480, https://github.com/wolfSSL/wolfHSM/pull/481, and https://github.com/wolfSSL/wolfHSM/pull/432 |
| 47 | +* Guarded against clients connecting with aliased client IDs in https://github.com/wolfSSL/wolfHSM/pull/362 |
| 48 | +* Fixed SHA client response struct initialization, block-transfer error propagation, and SHA-512 finalize error overwrite in https://github.com/wolfSSL/wolfHSM/pull/308, https://github.com/wolfSSL/wolfHSM/pull/309, and https://github.com/wolfSSL/wolfHSM/pull/311 |
| 49 | +* Restored SHA-3 client state when the server cannot offload the operation in https://github.com/wolfSSL/wolfHSM/pull/455 |
| 50 | +* Fixed ML-DSA cache import buffer sizing, verify-only cache size checks, and compatibility with updated wolfCrypt APIs in https://github.com/wolfSSL/wolfHSM/pull/397, https://github.com/wolfSSL/wolfHSM/pull/452, and https://github.com/wolfSSL/wolfHSM/pull/301 |
| 51 | +* Fixed config path copy bounds, shared memory create TOCTOU, VERIFY_ACERT DMA error propagation, and KDF and AES-GCM response output bounds in https://github.com/wolfSSL/wolfHSM/pull/425 |
| 52 | +* Improved POSIX transport file permissions and descriptor handling, bounded shared memory mapping by the shared object size, and required peer certificates for TLS transport server mode in https://github.com/wolfSSL/wolfHSM/pull/322, https://github.com/wolfSSL/wolfHSM/pull/479, and https://github.com/wolfSSL/wolfHSM/pull/363 |
| 53 | +* Fixed off-by-one in constant-time zero compare, uint16 truncation, void pointer arithmetic, and transposed arguments in flash unit reads in https://github.com/wolfSSL/wolfHSM/pull/304, https://github.com/wolfSSL/wolfHSM/pull/314, https://github.com/wolfSSL/wolfHSM/pull/431, and https://github.com/wolfSSL/wolfHSM/pull/295 |
| 54 | + |
| 55 | +## Enhancements and Optimizations |
| 56 | +* Overhauled the documentation and added user management invariants in https://github.com/wolfSSL/wolfHSM/pull/387 and https://github.com/wolfSSL/wolfHSM/pull/405 |
| 57 | +* Added CONTRIBUTING.md covering the contributor agreement and PR process in https://github.com/wolfSSL/wolfHSM/pull/509 |
| 58 | +* Added LMS, XMSS, ML-DSA, SHA-3, and HMAC-SHA3 benchmark modules and single round-trip ML-KEM timing in https://github.com/wolfSSL/wolfHSM/pull/454, https://github.com/wolfSSL/wolfHSM/pull/488, https://github.com/wolfSSL/wolfHSM/pull/499, https://github.com/wolfSSL/wolfHSM/pull/501, and https://github.com/wolfSSL/wolfHSM/pull/504 |
| 59 | +* Fixed SHA-2 benchmarks being skipped in non-DMA builds and reduced benchmark memory usage in https://github.com/wolfSSL/wolfHSM/pull/497, https://github.com/wolfSSL/wolfHSM/pull/456, and https://github.com/wolfSSL/wolfHSM/pull/514 |
| 60 | +* Reduced CI runtime with concurrency limits, ccache, draft PR filtering, and reorganized workflow matrices in https://github.com/wolfSSL/wolfHSM/pull/482, https://github.com/wolfSSL/wolfHSM/pull/483, https://github.com/wolfSSL/wolfHSM/pull/484, https://github.com/wolfSSL/wolfHSM/pull/485, and https://github.com/wolfSSL/wolfHSM/pull/489 |
| 61 | +* Added 32-bit CI job and automated coverage comparison in https://github.com/wolfSSL/wolfHSM/pull/491 and https://github.com/wolfSSL/wolfHSM/pull/490 |
| 62 | +* Migrated to the wc_MlDsaKey wolfCrypt API removing legacy Dilithium naming in https://github.com/wolfSSL/wolfHSM/pull/377 |
| 63 | +* Added ECC_MAKE_PUB and ECC_CHECK_PUB crypto callback support in https://github.com/wolfSSL/wolfHSM/pull/451 |
| 64 | +* Increased default key cache sizes for SHE, RSA, and ML-DSA use cases in https://github.com/wolfSSL/wolfHSM/pull/400 and https://github.com/wolfSSL/wolfHSM/pull/402 |
| 65 | +* Added test coverage for SHE loadable keys and secure boot, key usage policies, wrapped key restrictions, permission escalation, and DMA allow list boundaries in https://github.com/wolfSSL/wolfHSM/pull/335, https://github.com/wolfSSL/wolfHSM/pull/430, https://github.com/wolfSSL/wolfHSM/pull/380, https://github.com/wolfSSL/wolfHSM/pull/424, https://github.com/wolfSSL/wolfHSM/pull/470, and https://github.com/wolfSSL/wolfHSM/pull/500 |
| 66 | + |
1 | 67 | # wolfHSM Release v1.4.0 (February 16, 2026) |
2 | 68 |
|
3 | 69 | Due to NDA restrictions, access to the Infineon, ST Micro, TI, and Renesas ports is limited. Please contact [support@wolfssl.com](mailto:support@wolfssl.com) for access. |
|
0 commit comments