Skip to content

crates: bump blake2 and sha2 to 0.11 together - #108

Merged
ifaouibadi merged 1 commit into
developfrom
agent/growae-dependency-advisory-eng/2c62f297dfcb
Sep 3, 2026
Merged

ifaouibadi merged 1 commit into
developfrom
agent/growae-dependency-advisory-eng/2c62f297dfcb

Conversation

@ifaouibadi

Copy link
Copy Markdown
Contributor

Summary

  • Bumps blake2 and sha2 together in crates/Cargo.toml, 0.100.11. Both now pull digest 0.11.3, closing the split that made ae-core/src/hash.rs's Digest::new() calls resolve against two different digest majors (Blake2b against 0.11's trait, Sha256 against 0.10's) — the reason the two prior single-crate Dependabot PRs (blake2 alone, filed against bindings/dart/rust and bindings/wasm-js/core-component) weren't mergeable.
  • No source change was needed in hash.rs: blake2 0.11 and sha2 0.11 keep the same Digest::new/update/finalize surface and the same Blake2b<U32> / digest::consts::U32 paths, so unifying the digest version was the whole fix.
  • Regenerates all four tracked lockfiles in this one commit — crates/Cargo.lock, bindings/python/Cargo.lock, bindings/dart/rust/Cargo.lock, bindings/wasm-js/core-component/Cargo.lock — each via a scoped cargo check/cargo build update (not a full cargo generate-lockfile), so only the digest/blake2/sha2 dependency chain moved; no unrelated package bumped. Side effect: this also collapses a pre-existing duplicate-digest diamond (0.10.7 + 0.11.3 both present before this change, now a single 0.11.3 in crates/ and bindings/python; bindings/dart/rust still carries a separate digest 0.10.7 for flutter_rust_bridge's own md-5 dependency, untouched and out of scope).

Verification

All commands run locally against this branch, crates/ unless noted:

  • cargo fmt --all -- --check — clean.
  • cargo clippy --locked --all-targets -- -D warnings — clean.
  • cargo test --locked — all green, including hash::tests::blake2b_256_matches_the_published_vector and hash::tests::sha256_matches_the_published_vector (published test vectors, unchanged output).
  • cargo run --locked -p ae-parity -- matrix then git diff --exit-code -- ae-parity/MATRIX.md ae-parity/matrix.json — no diff: the full corpus reproduces byte-identical, matching parity.yml's own gate.
  • Each binding built --locked from the regenerated lockfile: bindings/python (cargo build --locked), bindings/dart/rust (cargo build --locked), bindings/wasm-js/core-component (cargo component build --release --target wasm32-unknown-unknown, the same cargo-component@0.21.1 pin wasm-bindings.yml installs) — all clean.

Note for review

blake2 0.11.0 and sha2 0.11.0 declare rust-version = "1.85"; the workspace's own rust-version = "1.82" (crates/Cargo.toml) is now understated by that. Every CI job pins the toolchain to 1.97.1 (crates/rust-toolchain.toml), so nothing gates red on this — flagging only because the declared MSRV field is no longer accurate, and left the field untouched since correcting it wasn't part of the row's stated shape.

Both share digest 0.11 now, closing the trait-surface split that made
ae-core/src/hash.rs's Digest::new() calls resolve against two different
digest majors. No code change was needed: blake2 and sha2 0.11 keep the
same Digest::new/update/finalize surface, and unifying on one digest
version also collapses the duplicate 0.10/0.11 diamond that existed
before this bump.

Regenerates all four tracked lockfiles (crates, and the three bindings
that depend on ae-core by path) so none disagree with the manifest
under --locked CI. blake2b_256 and sha256 output is verified unchanged:
the published test vectors in hash.rs still pass, and ae-parity's
matrix and reference-corpus gates reproduce byte-identical to what is
committed.
@github-actions github-actions Bot added the triage Acknowledged, not yet routed label Sep 3, 2026
@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Thanks for the pull request — it is in the queue and a maintainer will review it.

This repository is maintained on a weekly cadence. Anything opened from outside gets
a human reply within 2 business days; this comment is automation confirming your
pull request landed, and it is not that reply.

What happens next:

  • CI runs on the pull request. Check, Build and Test need to be green before
    review — you can push fixes straight to the same branch.
  • A maintainer reviews it against CONTRIBUTING.md.
  • A change to a package's public API, or a new dependency, needs a maintainer
    decision before it can merge. That is where the call gets made rather than a
    delay, and we will tell you either way instead of leaving it open.

If this is a security fix for an unreported vulnerability, please close it and use
the private channel first
SECURITY.md.
A public pull request describes the flaw to everyone before the fix is released.

@ifaouibadi
ifaouibadi merged commit db4da7f into develop Sep 3, 2026
37 of 44 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

triage Acknowledged, not yet routed

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant