Leancrypto Version 1.8.0
Code
Changes 1.8.0
-
X.509: provide a common automated serial number generator which is the 20 leftmost bytes of the SHA3-256 hash of the certificate DER blob with the serial number being 20 bytes of 0xff and the signature part equally a range of 0xff bytes
-
Add full support for internal IV generation with GCM - this allows AES-GCM to be used in FIPS mode
-
Curve448: Fix AVX2 ABI issue
-
Rust: add X25519 / X448 API to support rustls
-
Rust: add HKDF API
-
Rust: add ED25519 API to support rustls
-
X.509: Add support for ED25519 and ED448 certificates to support rustTLS for a smooth transition to PQC
-
HMAC: deentangle key and hash management
-
Remove VLA in the entire library
-
Fixes to ChaCha20-Poly1305 and HKDF based on Wycheproof
-
Add first drop of rustls-leancrypto provider - this code is not production-ready, but it works with OpenSSL via localhost as well as AWS-provider procedurally
-
Add lc_kyber_[x25519|448]_[enc|dec] API
-
BIKE: fix bug on 32-bit Intel systems
-
Rust: add status API
-
Harden various functions, add defense in depth checks suggested by LLMs
-
Bug fix: ML-KEM KDF helper ingested only ML-KEM part and skipped X25519
-
Add return code checker defending against fault injections
-
ML-DSA / SLH-DSA: slicing the implementation to allow keygen, siggen and sigver to be compiled independently - together with dead code stripping, only the desired functionality is present (e.g. in secure boot mode, only sigver is of interest) - build-script/shim_support.sh compiles only signature verification
-
Linux kernel: add HMAC support
-
Ascon: add support and tests for NULL AAD and NULL PT
-
symmetric ciphers: return error codes for encrypt/decrypt
-
PBKDF2: add FIPS140-3 compliance checks
-
AEAD / Symmetric ciphers; add support for parallel use of cipher contexts - this fixes issues with the AES symmetric support in the Linux kernel
-
ChaCha20: increment only the 32 bit counter to be 100% compliant with RFC7539 - but that implies that for one given setiv only 2^32 - 1 bytes are allowed to be en/decrypted
-
All production and test code is now subject to regular UBSAN tests
-
Add Wycheproof compliance testing using Rust interface
-
Linux kernel: fix all UBSAN reports - the leancrypto.ko and all tests now work do not show any report with ASAN/UBSAN/kmemleak detector tested on X86 and ARMv8.