From e51fc42884b25727ab85a8d9027bfecf6a7d01fc Mon Sep 17 00:00:00 2001 From: Eli Margolin <31743392+ecmargo@users.noreply.github.com> Date: Wed, 16 Oct 2024 18:15:07 -0400 Subject: [PATCH] Remove unneeded permute from Poseidon hashing (#152) * removed unneeded permutes * tests are consistent * Apply suggestions from code review * formatting --------- Co-authored-by: Eli Margolin Co-authored-by: Pratyush Mishra Co-authored-by: Eli Margolin Co-authored-by: Pratyush Mishra Co-authored-by: Eli Margolin --- crypto-primitives/src/sponge/poseidon/constraints.rs | 1 - crypto-primitives/src/sponge/poseidon/mod.rs | 1 - crypto-primitives/src/sponge/poseidon/tests.rs | 3 --- 3 files changed, 5 deletions(-) diff --git a/crypto-primitives/src/sponge/poseidon/constraints.rs b/crypto-primitives/src/sponge/poseidon/constraints.rs index a768a12..c3023ba 100644 --- a/crypto-primitives/src/sponge/poseidon/constraints.rs +++ b/crypto-primitives/src/sponge/poseidon/constraints.rs @@ -224,7 +224,6 @@ impl CryptographicSpongeVar> for PoseidonSpo DuplexSpongeMode::Squeezing { next_squeeze_index: _, } => { - self.permute()?; self.absorb_internal(0, input.as_slice())?; } }; diff --git a/crypto-primitives/src/sponge/poseidon/mod.rs b/crypto-primitives/src/sponge/poseidon/mod.rs index 7740001..471c162 100644 --- a/crypto-primitives/src/sponge/poseidon/mod.rs +++ b/crypto-primitives/src/sponge/poseidon/mod.rs @@ -251,7 +251,6 @@ impl CryptographicSponge for PoseidonSponge { DuplexSpongeMode::Squeezing { next_squeeze_index: _, } => { - self.permute(); self.absorb_internal(0, elems.as_slice()); } }; diff --git a/crypto-primitives/src/sponge/poseidon/tests.rs b/crypto-primitives/src/sponge/poseidon/tests.rs index 73955d6..dd760d1 100644 --- a/crypto-primitives/src/sponge/poseidon/tests.rs +++ b/crypto-primitives/src/sponge/poseidon/tests.rs @@ -111,9 +111,6 @@ fn run_cross_test(cfg: &PoseidonConfig) { match self.mode() { SpongeMode::Absorbing => self.absorbing.extend_from_slice(input), SpongeMode::Squeezing => { - // Wash the state as mode changes - // This is not appied in SAFE sponge - permute(&self.cfg, &mut self.state); // Append inputs to the absorbing line self.absorbing.extend_from_slice(input); // Change mode to absorbing