From 677a2e5749f4581d2f7cb84783758ab4d4207a9f Mon Sep 17 00:00:00 2001 From: Luke Parker Date: Wed, 20 Aug 2025 00:35:56 -0400 Subject: [PATCH] Fix zeroization timeline in multiexp, cargo machete --- Cargo.lock | 1 - crypto/multiexp/Cargo.toml | 2 +- crypto/multiexp/src/pippenger.rs | 3 ++- crypto/transcript/Cargo.toml | 3 +-- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4352ad49..667eb608 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2705,7 +2705,6 @@ dependencies = [ "merlin", "sha2", "std-shims", - "subtle", "zeroize", ] diff --git a/crypto/multiexp/Cargo.toml b/crypto/multiexp/Cargo.toml index 3f5f7f21..fcf32f85 100644 --- a/crypto/multiexp/Cargo.toml +++ b/crypto/multiexp/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "multiexp" -version = "0.4.1" +version = "0.4.2" description = "Multiexponentiation algorithms for ff/group" license = "MIT" repository = "https://github.com/serai-dex/serai/tree/develop/crypto/multiexp" diff --git a/crypto/multiexp/src/pippenger.rs b/crypto/multiexp/src/pippenger.rs index 76b161ba..faf9edc2 100644 --- a/crypto/multiexp/src/pippenger.rs +++ b/crypto/multiexp/src/pippenger.rs @@ -25,13 +25,14 @@ pub(crate) fn pippenger>( for p in 0 .. bits.len() { buckets[usize::from(bits[p][n])] += pairs[p].1; } - buckets.zeroize(); let mut intermediate_sum = G::identity(); for b in (1 .. buckets.len()).rev() { intermediate_sum += buckets[b]; res += intermediate_sum; } + + buckets.zeroize(); } bits.zeroize(); diff --git a/crypto/transcript/Cargo.toml b/crypto/transcript/Cargo.toml index b15c009e..dc8b340d 100644 --- a/crypto/transcript/Cargo.toml +++ b/crypto/transcript/Cargo.toml @@ -19,7 +19,6 @@ workspace = true [dependencies] std-shims = { path = "../../common/std-shims", version = "0.1.4", default-features = false } -subtle = { version = "^2.4", default-features = false } zeroize = { version = "^1.5", default-features = false } digest = { version = "0.10", default-features = false, features = ["core-api"] } @@ -32,7 +31,7 @@ sha2 = { version = "0.10", default-features = false } blake2 = { version = "0.10", default-features = false } [features] -std = ["std-shims/std", "subtle/std", "zeroize/std", "digest/std", "blake2?/std", "merlin?/std"] +std = ["std-shims/std", "zeroize/std", "digest/std", "blake2?/std", "merlin?/std"] recommended = ["blake2"] tests = [] default = ["std"]