diff --git a/crates/crypto/src/fiat_shamir/default_transcript.rs b/crates/crypto/src/fiat_shamir/default_transcript.rs index 766c84447..63c09c710 100644 --- a/crates/crypto/src/fiat_shamir/default_transcript.rs +++ b/crates/crypto/src/fiat_shamir/default_transcript.rs @@ -68,7 +68,9 @@ where } fn sample_u64(&mut self, upper_bound: u64) -> u64 { - u64::from_be_bytes(self.state()[..8].try_into().unwrap()) % upper_bound + let mut bytes = [0u8; 8]; + bytes.copy_from_slice(&self.sample()[..8]); + u64::from_be_bytes(bytes) % upper_bound } } diff --git a/crates/provers/winterfell_adapter/src/adapter/mod.rs b/crates/provers/winterfell_adapter/src/adapter/mod.rs index 032280846..72b84b354 100644 --- a/crates/provers/winterfell_adapter/src/adapter/mod.rs +++ b/crates/provers/winterfell_adapter/src/adapter/mod.rs @@ -46,7 +46,10 @@ impl IsStarkTranscript for FeltTranscript { } fn sample_u64(&mut self, upper_bound: u64) -> u64 { - u64::from_be_bytes(self.state()[..8].try_into().unwrap()) % upper_bound + let bytes = self.sample(8); + let mut arr = [0u8; 8]; + arr.copy_from_slice(&bytes); + u64::from_be_bytes(arr) % upper_bound } } @@ -82,6 +85,9 @@ impl IsStarkTranscript for QuadFeltTranscript { } fn sample_u64(&mut self, upper_bound: u64) -> u64 { - u64::from_be_bytes(self.state()[..8].try_into().unwrap()) % upper_bound + let bytes = self.felt_transcript.sample(8); + let mut arr = [0u8; 8]; + arr.copy_from_slice(&bytes); + u64::from_be_bytes(arr) % upper_bound } }