mirror of
https://github.com/arnaucube/ark-curves-cherry-picked.git
synced 2026-01-09 07:21:30 +01:00
Upgrade to work with latest ark-ff (#95)
Co-authored-by: Sun <huachuang20@gmail.com>
This commit is contained in:
24
curve-constraint-tests/src/lib.rs
Normal file → Executable file
24
curve-constraint-tests/src/lib.rs
Normal file → Executable file
@@ -5,8 +5,7 @@ pub mod fields {
|
||||
use ark_ff::{BitIteratorLE, Field, UniformRand};
|
||||
use ark_r1cs_std::prelude::*;
|
||||
use ark_relations::r1cs::{ConstraintSystem, SynthesisError};
|
||||
use ark_std::test_rng;
|
||||
use ark_std::vec::Vec;
|
||||
use ark_std::{test_rng, vec::Vec};
|
||||
|
||||
pub fn field_test<F, ConstraintF, AF>() -> Result<(), SynthesisError>
|
||||
where
|
||||
@@ -235,7 +234,7 @@ pub mod curves {
|
||||
short_weierstrass_jacobian::GroupProjective as SWProjective,
|
||||
twisted_edwards_extended::GroupProjective as TEProjective, ProjectiveCurve,
|
||||
};
|
||||
use ark_ff::{BitIteratorLE, Field, FpParameters, One, PrimeField};
|
||||
use ark_ff::{BitIteratorLE, Field, One, PrimeField};
|
||||
use ark_relations::r1cs::{ConstraintSystem, SynthesisError};
|
||||
use ark_std::{test_rng, vec::Vec, UniformRand};
|
||||
|
||||
@@ -323,23 +322,22 @@ pub mod curves {
|
||||
}
|
||||
assert!(cs.is_satisfied().unwrap());
|
||||
|
||||
let modulus = <C::ScalarField as PrimeField>::Params::MODULUS
|
||||
.as_ref()
|
||||
.to_vec();
|
||||
let modulus = <C::ScalarField as PrimeField>::MODULUS.as_ref().to_vec();
|
||||
let mut max = modulus.clone();
|
||||
for limb in &mut max {
|
||||
*limb = u64::MAX;
|
||||
}
|
||||
|
||||
let modulus_last_limb_bits = <C::ScalarField as PrimeField>::Params::MODULUS_BITS % 64;
|
||||
let modulus_last_limb_bits = <C::ScalarField as PrimeField>::MODULUS_BIT_SIZE % 64;
|
||||
*max.last_mut().unwrap() >>= 64 - modulus_last_limb_bits;
|
||||
let scalars = [
|
||||
C::ScalarField::rand(&mut rng).into_repr().as_ref().to_vec(),
|
||||
vec![u64::rand(&mut rng)],
|
||||
(-C::ScalarField::one()).into_repr().as_ref().to_vec(),
|
||||
<C::ScalarField as PrimeField>::Params::MODULUS
|
||||
C::ScalarField::rand(&mut rng)
|
||||
.into_bigint()
|
||||
.as_ref()
|
||||
.to_vec(),
|
||||
vec![u64::rand(&mut rng)],
|
||||
(-C::ScalarField::one()).into_bigint().as_ref().to_vec(),
|
||||
<C::ScalarField as PrimeField>::MODULUS.as_ref().to_vec(),
|
||||
max,
|
||||
vec![0; 50],
|
||||
vec![1000012341233u64; 36],
|
||||
@@ -585,13 +583,13 @@ pub mod pairing {
|
||||
};
|
||||
|
||||
let (ans3_g, ans3_n) = {
|
||||
let s_iter = BitIteratorLE::without_trailing_zeros(s.into_repr())
|
||||
let s_iter = BitIteratorLE::without_trailing_zeros(s.into_bigint())
|
||||
.map(Boolean::constant)
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
let mut ans_g = P::pairing(a_prep_g, b_prep_g)?;
|
||||
let mut ans_n = E::pairing(a, b);
|
||||
ans_n = ans_n.pow(s.into_repr());
|
||||
ans_n = ans_n.pow(s.into_bigint());
|
||||
ans_g = ans_g.pow_le(&s_iter)?;
|
||||
|
||||
(ans_g, ans_n)
|
||||
|
||||
Reference in New Issue
Block a user