From 954eaf16f26dd229f558a438c746ffe949a51147 Mon Sep 17 00:00:00 2001 From: wborgeaud Date: Sat, 5 Mar 2022 02:36:08 +0100 Subject: [PATCH] PR feedback --- plonky2/src/gadgets/curve_msm.rs | 12 ++++++------ plonky2/src/gadgets/ecdsa.rs | 26 +++++++++++++------------- plonky2/src/gadgets/glv.rs | 2 +- plonky2/src/gadgets/split_nonnative.rs | 8 ++++++-- 4 files changed, 26 insertions(+), 22 deletions(-) diff --git a/plonky2/src/gadgets/curve_msm.rs b/plonky2/src/gadgets/curve_msm.rs index 8d019b3a..fba7c229 100644 --- a/plonky2/src/gadgets/curve_msm.rs +++ b/plonky2/src/gadgets/curve_msm.rs @@ -3,8 +3,8 @@ use plonky2_field::extension_field::Extendable; use crate::curve::curve_types::{Curve, CurveScalar}; use crate::field::field_types::Field; -use crate::gadgets::biguint::BigUintTarget; use crate::gadgets::curve::AffinePointTarget; +use crate::gadgets::nonnative::NonNativeTarget; use crate::hash::hash_types::RichField; use crate::hash::keccak::KeccakHash; use crate::plonk::circuit_builder::CircuitBuilder; @@ -19,11 +19,11 @@ impl, const D: usize> CircuitBuilder { &mut self, p: &AffinePointTarget, q: &AffinePointTarget, - n: &BigUintTarget, - m: &BigUintTarget, + n: &NonNativeTarget, + m: &NonNativeTarget, ) -> AffinePointTarget { - let limbs_n = self.split_biguint_to_2_bit_limbs(n); - let limbs_m = self.split_biguint_to_2_bit_limbs(m); + let limbs_n = self.split_nonnative_to_2_bit_limbs(n); + let limbs_m = self.split_nonnative_to_2_bit_limbs(m); assert_eq!(limbs_n.len(), limbs_m.len()); let num_limbs = limbs_n.len(); @@ -119,7 +119,7 @@ mod tests { let n_target = builder.constant_nonnative(n); let m_target = builder.constant_nonnative(m); - let res_target = builder.curve_msm(&p_target, &q_target, &n_target.value, &m_target.value); + let res_target = builder.curve_msm(&p_target, &q_target, &n_target, &m_target); builder.curve_assert_valid(&res_target); builder.connect_affine_point(&res_target, &res_expected); diff --git a/plonky2/src/gadgets/ecdsa.rs b/plonky2/src/gadgets/ecdsa.rs index 672700c8..a376e56a 100644 --- a/plonky2/src/gadgets/ecdsa.rs +++ b/plonky2/src/gadgets/ecdsa.rs @@ -65,25 +65,13 @@ mod tests { use crate::plonk::config::{GenericConfig, PoseidonGoldilocksConfig}; use crate::plonk::verifier::verify; - #[test] - #[ignore] - fn test_ecdsa_circuit() -> Result<()> { + fn test_ecdsa_circuit_with_config(config: CircuitConfig) -> Result<()> { const D: usize = 2; type C = PoseidonGoldilocksConfig; type F = >::F; type Curve = Secp256K1; - const WIDE: bool = true; - - let config = if WIDE { - // < 2^16 gates. - CircuitConfig::wide_ecc_config() - } else { - // < 2^17 gates. - CircuitConfig::standard_ecc_config() - }; - let pw = PartialWitness::new(); let mut builder = CircuitBuilder::::new(config); @@ -112,4 +100,16 @@ mod tests { let proof = data.prove(pw).unwrap(); verify(proof, &data.verifier_only, &data.common) } + + #[test] + #[ignore] + fn test_ecdsa_circuit_narrow() -> Result<()> { + test_ecdsa_circuit_with_config(CircuitConfig::standard_ecc_config()) + } + + #[test] + #[ignore] + fn test_ecdsa_circuit_wide() -> Result<()> { + test_ecdsa_circuit_with_config(CircuitConfig::wide_ecc_config()) + } } diff --git a/plonky2/src/gadgets/glv.rs b/plonky2/src/gadgets/glv.rs index 4bc3efd6..8a0179ec 100644 --- a/plonky2/src/gadgets/glv.rs +++ b/plonky2/src/gadgets/glv.rs @@ -69,7 +69,7 @@ impl, const D: usize> CircuitBuilder { let p_neg = self.curve_conditional_neg(p, k1_neg); let sp_neg = self.curve_conditional_neg(&sp, k2_neg); - self.curve_msm(&p_neg, &sp_neg, &k1.value, &k2.value) + self.curve_msm(&p_neg, &sp_neg, &k1, &k2) } } diff --git a/plonky2/src/gadgets/split_nonnative.rs b/plonky2/src/gadgets/split_nonnative.rs index becf1177..18fc0264 100644 --- a/plonky2/src/gadgets/split_nonnative.rs +++ b/plonky2/src/gadgets/split_nonnative.rs @@ -35,8 +35,12 @@ impl, const D: usize> CircuitBuilder { .collect() } - pub fn split_biguint_to_2_bit_limbs(&mut self, val: &BigUintTarget) -> Vec { - val.limbs + pub fn split_nonnative_to_2_bit_limbs( + &mut self, + val: &NonNativeTarget, + ) -> Vec { + val.value + .limbs .iter() .flat_map(|&l| self.split_le_base::<4>(l.0, 16)) .collect()