From 988fc084a1325b832eedccf26b8caa64eda1be40 Mon Sep 17 00:00:00 2001 From: timofey Date: Mon, 11 Mar 2024 12:59:27 +0100 Subject: [PATCH] Fix silent integer truncations (#71) --- lightclient-circuits/src/gadget/crypto/sha256_wide.rs | 2 +- lightclient-circuits/src/util/circuit.rs | 2 +- test-utils/src/lib.rs | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/lightclient-circuits/src/gadget/crypto/sha256_wide.rs b/lightclient-circuits/src/gadget/crypto/sha256_wide.rs index c97a269..3cce593 100644 --- a/lightclient-circuits/src/gadget/crypto/sha256_wide.rs +++ b/lightclient-circuits/src/gadget/crypto/sha256_wide.rs @@ -51,7 +51,7 @@ impl<'a, F: Field> HashInstructions for Sha256ChipWide<'a, F> { let binary_input: HashInput = HashInput::Single( assigned_bytes .iter() - .map(|av| av.value().get_lower_32() as u8) + .map(|av| u8::try_from(av.value().get_lower_32()).expect("truncated")) .collect_vec() .into(), ); diff --git a/lightclient-circuits/src/util/circuit.rs b/lightclient-circuits/src/util/circuit.rs index 1811442..ffe73b2 100644 --- a/lightclient-circuits/src/util/circuit.rs +++ b/lightclient-circuits/src/util/circuit.rs @@ -73,7 +73,7 @@ impl Halo2ConfigPinning for Eth2ConfigPinning { } fn degree(&self) -> u32 { - self.params.k as u32 + u32::try_from(self.params.k).expect("k is too large for u32") } } diff --git a/test-utils/src/lib.rs b/test-utils/src/lib.rs index 8c6fe2a..cd3f810 100644 --- a/test-utils/src/lib.rs +++ b/test-utils/src/lib.rs @@ -44,7 +44,8 @@ pub fn get_initial_sync_committee_poseidon