Skip to content

Bump aes-gcm from 0.10.3 to 0.11.0 - #186

Open
dependabot[bot] wants to merge 2 commits into
mainfrom
dependabot/cargo/aes-gcm-0.11.0
Open

Bump aes-gcm from 0.10.3 to 0.11.0#186
dependabot[bot] wants to merge 2 commits into
mainfrom
dependabot/cargo/aes-gcm-0.11.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 27, 2026

Copy link
Copy Markdown
Contributor

Bumps aes-gcm from 0.10.3 to 0.11.0.

Commits

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [aes-gcm](https://github.com/RustCrypto/AEADs) from 0.10.3 to 0.11.0.
- [Commits](RustCrypto/AEADs@aes-gcm-v0.10.3...aes-gcm-v0.11.0)

---
updated-dependencies:
- dependency-name: aes-gcm
  dependency-version: 0.11.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file rust Pull requests that update Rust code labels Jul 27, 2026
@socket-security

socket-security Bot commented Jul 27, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedcargo/​aes@​0.9.210010093100100
Addedcargo/​aes-gcm@​0.11.010010093100100

View full report

aes-gcm 0.11 moved to the cipher 0.5 / aes 0.9 generation of the
RustCrypto stack. The custom `AesGcm<Aes192, U12>` alias uses `aes::Aes192`,
so the top-level `aes` dependency must move to 0.9 to satisfy the new
KeyInit/cipher 0.5 trait bounds.

aes-gcm 0.11's default features enable `getrandom`, which now pulls in
getrandom 0.4 (via crypto-common 0.2). That breaks the wasm32 build because
the existing wasm getrandom override only covers getrandom 0.2. This crate
never uses aes-gcm's RNG helpers (nonces come from the caller-provided iv),
so disable the unused feature by using default-features = false with only
the `aes` and `alloc` features that the code actually relies on.

@ev-vaultkeeper ev-vaultkeeper Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dependabot review: aes-gcm 0.10.3 -> 0.11.0

This bump does not compile as submitted, so I pushed a follow-up commit to this branch to make it build. Summary below.

Usage in the repo

aes-gcm is only used in attestation-doc-validation/src/nsm/crypto.rs, where CryptoClient implements the cose Encryption/Decryption/Hash traits. Note that the attestation-validation path only exercises the Hash + signature-verification code (get_payload::<CryptoClient>(None) / validate_cose_signature); the AES-GCM encrypt/decrypt functions exist only to satisfy the cose trait bounds and are not exercised by the library or its tests. Runtime risk from the bump is therefore low — the requirement is just that it keeps compiling.

Why it broke

  1. Native build. aes-gcm 0.11 moves to the cipher 0.5 / aes 0.9 generation of the RustCrypto stack (aead 0.5->0.6, cipher 0.4->0.5, ghash 0.5->0.6, ctr 0.9->0.10). The custom alias type Aes192Gcm = AesGcm<Aes192, U12> uses aes::Aes192 from the top-level aes crate, which was still pinned to ^0.8 (cipher 0.4 traits), so KeyInit/new_from_slice no longer satisfied the trait bounds. Aes128Gcm/Aes256Gcm come from aes-gcm itself and were unaffected.
  2. wasm build. aes-gcm 0.11's default features enable getrandom, which now pulls in getrandom 0.4 (via crypto-common 0.2). The crate's wasm32 override only pins getrandom 0.2 (js feature), so the wasm build failed with the getrandom 0.4 "wasm_js backend not enabled" error. (aes-gcm 0.10.3's default also enabled getrandom, but back then it resolved to getrandom 0.2, which is why wasm built fine on main.)

Fix pushed

aes = "^0.9"
aes-gcm = { version = "^0.11", default-features = false, features = ["aes", "alloc"] }
  • Bumping aes to ^0.9 makes Aes192 implement the cipher 0.5 traits aes-gcm 0.11 needs (aes 0.9.2 was already in the lockfile via aes-gcm, so no new crates are added on that account).
  • Disabling default features and enabling only aes + alloc drops the unused getrandom feature, removing getrandom 0.4 (+ r-efi, rand_core 0.10) from the resolved graph and restoring the wasm build. This preserves every aes-gcm API the code actually uses.

Verification

  • cargo fmt --check, cargo clippy -- -W clippy::pedantic, cargo check/build (debug + release) for the main crate.
  • cargo test plus both time_sensitive_beta and time_sensitive_ga suites — all pass.
  • cargo check and cargo build --release for wasm-attestation-bindings on wasm32-unknown-unknown — pass.
  • --locked builds succeed, so the lockfile is consistent.
  • The changelog shows no algorithmic/behavioral change to AES-GCM itself and no security-relevant regressions; the only fixed constants (P_MAX/A_MAX) are unrelated to this usage.

Conclusion: safe to merge with the pushed fix. (The pre-existing kotlin-attestation-bindings uniffi_bindgen_main build failure also occurs on main and is unrelated to this PR / not part of CI.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file rust Pull requests that update Rust code

Development

Successfully merging this pull request may close these issues.

1 participant