Repository navigation
What's Changed
- Implement
EqandPartialEqfor RSA and EdDSA parameters by @dsykes16 in #1228RsaParameterscan now be compared directly against RSA verification constants. Algorithms with different digests, padding schemes, or modulus-size ranges compare unequal.EdDSAParametersalso gains equality support.
- Add
wasm32-wasip2andwasm32-wasip3support by @ricochet in #1239- Adds non-FIPS builds using universal bindings, with CI coverage under Wasmtime and wasi-sdk 34. WASIp3 requires nightly Rust.
- Direct
aws-lc-sysconsumers must disable the defaultall-bindingsfeature for these targets.
- Publish the intended
RandomizedNonceKey::open_in_placedocumentation by @Serophots in #1227- Makes the existing nonce, ciphertext/tag layout, and buffer-on-error contract visible in rustdoc. No runtime behavior changes.
Upstream AWS-LC
aws-lc-sysv0.46.0 aligns with AWS-LC v5.11.0 (previously v5.7.0). See also the release notes for v5.8.0, v5.9.0, and v5.10.0.- The Ed25519 C-implementation decoder now rejects non-canonical public keys, matching the assembly-optimized implementations: aws/aws-lc#3457
- Includes ChaCha20-Poly1305 key-material zeroization and fixes ML-KEM CPU feature detection to avoid illegal-instruction failures on x86-64 CPUs with AVX2 but no BMI2: aws/aws-lc#3552 and aws/aws-lc#3596
aws-lc-fips-sysv0.14.3 updates its bundled AWS-LC FIPS 4.2.0 snapshot and regenerates bindings. It remains on the FIPS 4.x release line.
Build Improvements
- Raise the minimum system AWS-LC version to 5.7.0 by @justsmth in #1243
- Non-FIPS system-library installations must now provide AWS-LC 5.7.0 or newer, previously 1.68.0. Bundled-source builds and FIPS version requirements are unchanged.
- Fix static FIPS system-library linking by @justsmth in #1236
- Fixes unresolved
FIPS_modereferences with GNU ld.bfd when linking a prebuilt static FIPS library, including binaries that do not call crypto and builds where LTO removes those calls. - Uses whole-archive linking to retain libcrypto, including in downstream Rust
staticliboutputs. This can increase binary size; dynamic FIPS and non-FIPS linking are unchanged.
- Fixes unresolved
- Fix Cranelift linking by @justsmth in #1234
- Normalizes binding link names to avoid undefined-symbol failures, including when Cranelift is selected through Cargo profiles rather than
RUSTFLAGS. TheAWS_LC_SYS_NO_U1_BINDINGSworkaround is no longer needed.
- Normalizes binding link names to avoid undefined-symbol failures, including when Cranelift is selected through Cargo profiles rather than
- Fix jitterentropy builds with optimizing
CFLAGSand newerccversions by @justsmth in #1254- Keeps filtered flags in effect throughout the jitterentropy builder's lifetime, preventing cached environment reads from allowing flags such as
-O2to override its required-O0.
- Keeps filtered flags in effect throughout the jitterentropy builder's lifetime, preventing cached environment reads from allowing flags such as
- Honor
AWS_LC_SYS_CCin the main library build by @justsmth in #1255- Applies crate-specific compiler overrides before compiler lookup in both CC and CMake build paths, keeping compiler selection and capability probes consistent when
cccaches environment reads.
- Applies crate-specific compiler overrides before compiler lookup in both CC and CMake build paths, keeping compiler selection and capability probes consistent when
- Improve archive reproducibility through symlinked build paths by @justsmth in #1238
- Prevents the non-Windows CC builder from incorporating symlink-resolved absolute build paths into archive member names, avoiding unnecessary downstream compile-cache misses. Windows short-path handling is unchanged.
- Upgrade bindgen to 0.73 by @xtqqczze in #1244
- Document the system-library trust model by @justsmth in #1218
- Clarifies that supplied paths and pkg-config results are trusted build inputs, and that FIPS validation can execute candidate library code before accepting or rejecting it. Documents runner requirements and how to disable automatic system-library detection.
Issues Being Closed
- Cranelift builds fail with
codegen-backend = "cranelift"-- #1231 - Upgrade bindgen to v0.73 -- #1245
- Undefined
FIPS_modewhen linking a prebuilt FIPS module into a binary that does not use crypto -- #1246 - Jitterentropy fails with "must not be compiled with optimizations" in aws-lc-rs v1.18.1 / aws-lc-sys v0.45.0 -- #1252
Other Merged PRs
- Add security review workflow by @nhatnghiho in #1226
- docs: align pull request template with AWS-LC by @justsmth in #1219
- ci: verify docs.rs build with read-only crate sources by @justsmth in #1209
- ci: harden workflows and release tooling by @justsmth in #1216
- ci: harden documentation deployment by @justsmth in #1217
- ci: fix rustls integration against rustls-aws-lc-rs by @justsmth in #1229
- build(deps): bump actions/deploy-pages from 5.0.0 to 5.0.1 by @dependabot[bot] in #1232
- build(deps): bump codecov/codecov-action from 7.0.0 to 7.1.0 by @dependabot[bot] in #1235
- build(deps): bump codecov/codecov-action from 7.1.0 to 7.1.1 by @dependabot[bot] in #1237
- Fix Clippy failures with bindgen 0.73 by @justsmth in #1250
- Prepare aws-lc-sys v0.46.0 and aws-lc-rs v1.18.2 by @justsmth in #1256
- Prepare aws-lc-fips-sys v0.14.3 by @justsmth in #1258
New Contributors
- @nhatnghiho made their first contribution in #1226
- @dsykes16 made their first contribution in #1228
- @Serophots made their first contribution in #1227
- @ricochet made their first contribution in #1239
- @xtqqczze made their first contribution in #1244
Full Changelog: v1.18.1...v1.18.2