Skip to content

aws-lc-rs v1.18.1

Latest

Choose a tag to compare

@justsmth justsmth released this 01 Sep 20:38
22e629d

What's Changed

  • Add ECDSA P-256 SHA-1 ASN.1 signature verification by @assafvayner in #1214
    • Adds ECDSA_P256_SHA1_ASN1 for verifying ASN.1 DER-encoded ECDSA P-256 signatures over SHA-1, so applications can verify legacy signatures such as CloudFront signed URLs using ECDSA P-256 with the default SHA-1 hash.
    • SHA-1 remains available for legacy verification only. This release does not add a corresponding signing algorithm.
  • Tighten AEAD, cipher IV, HKDF, ECDH, and RSA API contracts by @justsmth in #1215
    • In-place AEAD sealing now verifies that Extend produced exactly enough space for the plaintext and authentication tag before passing the buffer to AWS-LC. Non-conforming custom buffers now return Err(Unspecified).
    • Streaming cipher constructors now reject missing or mismatched IV contexts, matching the validation already performed by the one-shot APIs.
    • Salt::from(Okm) now uses the output algorithm selected by the Okm, rather than the algorithm from the source PRK.
    • ECDH shared-secret storage is now zeroized on fallible derive paths.
    • RSA verify_digest_sig now requires the supplied digest to match the digest configured by RsaParameters, for both parsed and unparsed public keys.
    • Valid inputs are unaffected. Calls using inconsistent algorithms, IV contexts, or custom AEAD buffers now fail closed with Err(Unspecified).

Upstream AWS-LC

  • aws-lc-sys v0.45.0 aligns with AWS-LC v5.7.0 (previously v5.5.0). See also the release notes for v5.6.0.
    • v5.7.0 corrects EVP_DecryptUpdate for padded block ciphers so it modifies only the output range reported through out_len. aws-lc-rs now includes canary-based regression coverage around the documented minimum output-buffer sizes.
  • aws-lc-fips-sys v0.14.2 moves to AWS-LC FIPS v4.2.0.
    • Includes the equivalent EVP_DecryptUpdate correction for FIPS builds.
    • Restores FIPS builds with Clang 20 and newer.
    • Removes the FIPS compiler wrapper's dependency on /usr/bin/env, fixing builds in Nix and similar sandboxed environments.

Build Improvements

  • Export cargo:root metadata when linking against a system-installed AWS-LC by @weihanglo in #1208
    • The system-library path now exposes the installation prefix through DEP_AWS_LC_*_ROOT, consistently with the CC and CMake builders, so downstream build scripts can rely on the metadata regardless of how AWS-LC was built.
  • Fix -Wa,--debug-prefix-map handling with Clang and LTO by @justsmth in #1212
    • Fixes Clang builds when CFLAGS contains -flto or -flto=thin. The assembler-specific flag is now used only with GCC; Clang's integrated assembler uses -ffile-prefix-map directly.
  • Filter raw target-triple CFLAGS spellings when compiling jitterentropy by @justsmth in #1207
    • Prevents inherited optimization flags from overriding jitterentropy's required -O0, including when environment variables are set by a parent process using raw or legacy-normalized target triples.

Issues Being Closed

  • aws-lc-fips-sys v0.14.0 fails to build with Clang newer than 19 -- #1202
  • FIPS compiler wrapper fails in Nix build environments -- #1204
  • Raw target-triple CFLAGS should be filtered for jitterentropy -- #1205
  • aws-lc-sys fails to build with Clang when CFLAGS includes -flto -- #1211

Other Merged PRs

New Contributors

Full Changelog: v1.18.0...v1.18.1

New Contributors

Full Changelog: v1.18.0...v1.18.1