Skip to content

deps(deps): bump sha1 from 0.10.6 to 0.11.0#1157

Closed
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/sha1-0.11.0
Closed

deps(deps): bump sha1 from 0.10.6 to 0.11.0#1157
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/sha1-0.11.0

Conversation

@dependabot
Copy link
Copy Markdown
Contributor

@dependabot dependabot Bot commented on behalf of github May 20, 2026

Bumps sha1 from 0.10.6 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 [sha1](https://github.com/RustCrypto/hashes) from 0.10.6 to 0.11.0.
- [Commits](RustCrypto/hashes@sha1-v0.10.6...sha1-v0.11.0)

---
updated-dependencies:
- dependency-name: sha1
  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 May 20, 2026
@proggeramlug
Copy link
Copy Markdown
Contributor

Closing in favor of #1238 — RustCrypto 0.10 → 0.11 needs to be a coordinated bump of the whole stack (sha1 + sha2 + md-5 + hmac + pbkdf2 + hkdf + digest). This PR fails to compile because cargo pulls both digest 0.10 and digest 0.11 into the graph and the trait impls don't unify across versions.

@dependabot ignore this minor version

@dependabot @github
Copy link
Copy Markdown
Contributor Author

dependabot Bot commented on behalf of github May 21, 2026

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version. You can also ignore all major, minor, or patch releases for a dependency by adding an ignore condition with the desired update_types to your config file.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

@dependabot dependabot Bot deleted the dependabot/cargo/sha1-0.11.0 branch May 21, 2026 03:49
proggeramlug added a commit that referenced this pull request May 21, 2026
Coordinated migration of the digest 0.10 -> 0.11 stack across our direct
deps. AEAD stack (aes/aes-gcm/aes-kw/cipher) stays on 0.8/0.10/0.3
pending aes-gcm 0.11 (still RC).

Bumps:
  sha1   0.10 -> 0.11   (perry-stdlib, perry-jsruntime)
  sha2   0.10 -> 0.11   (perry-stdlib, perry-jsruntime, perry-updater, perry)
  md-5   0.10 -> 0.11   (perry-stdlib, perry-jsruntime)
  hmac   0.12 -> 0.13   (perry-stdlib, perry-jsruntime)
  pbkdf2 0.12 -> 0.13   (perry-stdlib; `simple` feature replaced by `hmac`)
  hkdf   0.12 -> 0.13   (perry-stdlib)

Call-site updates for the digest 0.11 / hmac 0.13 API:

- `Hmac::new_from_slice` now lives behind the `KeyInit` trait (moved out
  of the `Mac` trait import). Added `use hmac::KeyInit;` everywhere the
  call appears: perry-stdlib `webcrypto.rs`, `crypto.rs` (`js_crypto_hmac_sha256`,
  `js_crypto_hmac_sha256_bytes`, `js_crypto_create_hmac`), and
  perry-jsruntime `ops.rs::op_perry_hmac`.
- `Sha256: io::Write` impl was removed in sha2 0.11, so the
  `std::io::copy(&mut file, &mut hasher)` shortcut in
  `perry-lock::sha256_of_file` no longer compiles. Replaced with the
  same explicit 64 KiB read loop that `attest.rs::sha256_hex` already
  uses (and which is what `io::copy` was doing internally anyway).
- `Sha256::finalize()` now returns `hybrid_array::Array<u8, N>` instead
  of `generic_array::GenericArray`. `Array` doesn't impl `LowerHex`, so
  `format!("{:x}", hasher.finalize())` in `attest.rs` was replaced with
  the equivalent `hex::encode(hasher.finalize())` (perry already depends
  on `hex = "0.4"`).

`cargo tree` still shows two digest versions — that's expected. The
transitive consumers (jsonwebtoken, sqlx, elliptic-curve, ed25519-dalek,
curve25519-dalek, p256/p384, argon2/blake2) all still pin digest 0.10
internally; they don't leak into our code, and the same coexistence
already holds for cipher (0.4.4 + 0.5.1).

Dependabot ignore list narrowed to just aes/aes-gcm/aes-kw/cipher —
those still need to land in a coordinated AEAD-stack PR once aes-gcm
0.11 ships stable. The original noise pattern (one-at-a-time digest
breaking PRs like closed #1157) is now resolved by the actual bump.

Validation:
- cargo build --release -p perry-runtime -p perry-stdlib -p perry-updater
  -p perry-jsruntime -p perry: clean
- cargo test --release -p perry-stdlib --lib: 74/74 pass (incl. SHA-256
  test vectors, AES-GCM round-trips that route through hkdf, AWS SigV4
  HMAC vector, jsonwebtoken verify)
- cargo test --release -p perry-updater --lib: 10/10 pass (hash +
  signature roundtrips)
- End-to-end webcrypto smoke: `crypto.subtle.digest("SHA-256", "hello")`
  produces the published vector
  `2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824`
- cargo fmt --all -- --check: clean

Refs #1238 (closes the immediate migration; tracking issue stays open
for the AEAD-stack follow-up when aes-gcm 0.11 ships).
proggeramlug added a commit that referenced this pull request May 21, 2026
Suppress one-at-a-time 0.x -> 0.(x+1) PRs (e.g. closed #1157) for the
RustCrypto direct deps until the whole stack — including aes-gcm 0.11
and the transitive digest-0.10 holdouts (jsonwebtoken, sqlx,
elliptic-curve) — can move in one coordinated PR. Patch bumps still
flow through, so security fixes aren't blocked.

Refs #1238.
proggeramlug added a commit that referenced this pull request May 21, 2026
Coordinated migration of the digest 0.10 -> 0.11 stack across our direct
deps. AEAD stack (aes/aes-gcm/aes-kw/cipher) stays on 0.8/0.10/0.3
pending aes-gcm 0.11 (still RC).

Bumps:
  sha1   0.10 -> 0.11   (perry-stdlib, perry-jsruntime)
  sha2   0.10 -> 0.11   (perry-stdlib, perry-jsruntime, perry-updater, perry)
  md-5   0.10 -> 0.11   (perry-stdlib, perry-jsruntime)
  hmac   0.12 -> 0.13   (perry-stdlib, perry-jsruntime)
  pbkdf2 0.12 -> 0.13   (perry-stdlib; `simple` feature replaced by `hmac`)
  hkdf   0.12 -> 0.13   (perry-stdlib)

Call-site updates for the digest 0.11 / hmac 0.13 API:

- `Hmac::new_from_slice` now lives behind the `KeyInit` trait (moved out
  of the `Mac` trait import). Added `use hmac::KeyInit;` everywhere the
  call appears: perry-stdlib `webcrypto.rs`, `crypto.rs` (`js_crypto_hmac_sha256`,
  `js_crypto_hmac_sha256_bytes`, `js_crypto_create_hmac`), and
  perry-jsruntime `ops.rs::op_perry_hmac`.
- `Sha256: io::Write` impl was removed in sha2 0.11, so the
  `std::io::copy(&mut file, &mut hasher)` shortcut in
  `perry-lock::sha256_of_file` no longer compiles. Replaced with the
  same explicit 64 KiB read loop that `attest.rs::sha256_hex` already
  uses (and which is what `io::copy` was doing internally anyway).
- `Sha256::finalize()` now returns `hybrid_array::Array<u8, N>` instead
  of `generic_array::GenericArray`. `Array` doesn't impl `LowerHex`, so
  `format!("{:x}", hasher.finalize())` in `attest.rs` was replaced with
  the equivalent `hex::encode(hasher.finalize())` (perry already depends
  on `hex = "0.4"`).

`cargo tree` still shows two digest versions — that's expected. The
transitive consumers (jsonwebtoken, sqlx, elliptic-curve, ed25519-dalek,
curve25519-dalek, p256/p384, argon2/blake2) all still pin digest 0.10
internally; they don't leak into our code, and the same coexistence
already holds for cipher (0.4.4 + 0.5.1).

Dependabot ignore list narrowed to just aes/aes-gcm/aes-kw/cipher —
those still need to land in a coordinated AEAD-stack PR once aes-gcm
0.11 ships stable. The original noise pattern (one-at-a-time digest
breaking PRs like closed #1157) is now resolved by the actual bump.

Validation:
- cargo build --release -p perry-runtime -p perry-stdlib -p perry-updater
  -p perry-jsruntime -p perry: clean
- cargo test --release -p perry-stdlib --lib: 74/74 pass (incl. SHA-256
  test vectors, AES-GCM round-trips that route through hkdf, AWS SigV4
  HMAC vector, jsonwebtoken verify)
- cargo test --release -p perry-updater --lib: 10/10 pass (hash +
  signature roundtrips)
- End-to-end webcrypto smoke: `crypto.subtle.digest("SHA-256", "hello")`
  produces the published vector
  `2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824`
- cargo fmt --all -- --check: clean

Refs #1238 (closes the immediate migration; tracking issue stays open
for the AEAD-stack follow-up when aes-gcm 0.11 ships).
proggeramlug added a commit that referenced this pull request May 21, 2026
* ci(dependabot): ignore semver-minor on RustCrypto stack (#1238)

Suppress one-at-a-time 0.x -> 0.(x+1) PRs (e.g. closed #1157) for the
RustCrypto direct deps until the whole stack — including aes-gcm 0.11
and the transitive digest-0.10 holdouts (jsonwebtoken, sqlx,
elliptic-curve) — can move in one coordinated PR. Patch bumps still
flow through, so security fixes aren't blocked.

Refs #1238.

* deps: bump RustCrypto digest stack to 0.11 family (#1238)

Coordinated migration of the digest 0.10 -> 0.11 stack across our direct
deps. AEAD stack (aes/aes-gcm/aes-kw/cipher) stays on 0.8/0.10/0.3
pending aes-gcm 0.11 (still RC).

Bumps:
  sha1   0.10 -> 0.11   (perry-stdlib, perry-jsruntime)
  sha2   0.10 -> 0.11   (perry-stdlib, perry-jsruntime, perry-updater, perry)
  md-5   0.10 -> 0.11   (perry-stdlib, perry-jsruntime)
  hmac   0.12 -> 0.13   (perry-stdlib, perry-jsruntime)
  pbkdf2 0.12 -> 0.13   (perry-stdlib; `simple` feature replaced by `hmac`)
  hkdf   0.12 -> 0.13   (perry-stdlib)

Call-site updates for the digest 0.11 / hmac 0.13 API:

- `Hmac::new_from_slice` now lives behind the `KeyInit` trait (moved out
  of the `Mac` trait import). Added `use hmac::KeyInit;` everywhere the
  call appears: perry-stdlib `webcrypto.rs`, `crypto.rs` (`js_crypto_hmac_sha256`,
  `js_crypto_hmac_sha256_bytes`, `js_crypto_create_hmac`), and
  perry-jsruntime `ops.rs::op_perry_hmac`.
- `Sha256: io::Write` impl was removed in sha2 0.11, so the
  `std::io::copy(&mut file, &mut hasher)` shortcut in
  `perry-lock::sha256_of_file` no longer compiles. Replaced with the
  same explicit 64 KiB read loop that `attest.rs::sha256_hex` already
  uses (and which is what `io::copy` was doing internally anyway).
- `Sha256::finalize()` now returns `hybrid_array::Array<u8, N>` instead
  of `generic_array::GenericArray`. `Array` doesn't impl `LowerHex`, so
  `format!("{:x}", hasher.finalize())` in `attest.rs` was replaced with
  the equivalent `hex::encode(hasher.finalize())` (perry already depends
  on `hex = "0.4"`).

`cargo tree` still shows two digest versions — that's expected. The
transitive consumers (jsonwebtoken, sqlx, elliptic-curve, ed25519-dalek,
curve25519-dalek, p256/p384, argon2/blake2) all still pin digest 0.10
internally; they don't leak into our code, and the same coexistence
already holds for cipher (0.4.4 + 0.5.1).

Dependabot ignore list narrowed to just aes/aes-gcm/aes-kw/cipher —
those still need to land in a coordinated AEAD-stack PR once aes-gcm
0.11 ships stable. The original noise pattern (one-at-a-time digest
breaking PRs like closed #1157) is now resolved by the actual bump.

Validation:
- cargo build --release -p perry-runtime -p perry-stdlib -p perry-updater
  -p perry-jsruntime -p perry: clean
- cargo test --release -p perry-stdlib --lib: 74/74 pass (incl. SHA-256
  test vectors, AES-GCM round-trips that route through hkdf, AWS SigV4
  HMAC vector, jsonwebtoken verify)
- cargo test --release -p perry-updater --lib: 10/10 pass (hash +
  signature roundtrips)
- End-to-end webcrypto smoke: `crypto.subtle.digest("SHA-256", "hello")`
  produces the published vector
  `2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824`
- cargo fmt --all -- --check: clean

Refs #1238 (closes the immediate migration; tracking issue stays open
for the AEAD-stack follow-up when aes-gcm 0.11 ships).
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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant