Let `cargo build` work again for the new arkworks-rs algebra (#111)
Weikeng Chen w.k@berkeley.edu
Sun, 21 Aug 2022 18:22:43 -0700
4 files changed,
16 insertions(+),
10 deletions(-)
M
bls12_381/src/curves/g1.rs
→
bls12_381/src/curves/g1.rs
@@ -5,7 +5,7 @@ models::CurveConfig,
short_weierstrass::{Affine, SWCurveConfig}, AffineCurve, ProjectiveCurve, }; -use ark_ff::{biginteger::BigInteger256, Field, MontFp, Zero}; +use ark_ff::{Field, MontFp, Zero}; use ark_std::ops::Neg; use crate::*;@@ -50,17 +50,15 @@ // Algorithm from Section 6 of https://eprint.iacr.org/2021/1130.
// // Check that endomorphism_p(P) == -[X^2]P - let x = BigInteger256::new([crate::Parameters::X[0], 0, 0, 0]); - // An early-out optimization described in Section 6. // If uP == P but P != point of infinity, then the point is not in the right // subgroup. - let x_times_p = p.mul(x); + let x_times_p = p.mul_bigint(crate::Parameters::X); if x_times_p.eq(p) && !p.infinity { return false; } - let minus_x_squared_times_p = x_times_p.mul(x).neg(); + let minus_x_squared_times_p = x_times_p.mul_bigint(crate::Parameters::X).neg(); let endomorphism_p = endomorphism(p); minus_x_squared_times_p.eq(&endomorphism_p) }
M
bls12_381/src/curves/g2.rs
→
bls12_381/src/curves/g2.rs
@@ -5,7 +5,7 @@ models::CurveConfig,
short_weierstrass::{Affine, SWCurveConfig}, AffineCurve, }; -use ark_ff::{BigInt, Field, MontFp, Zero}; +use ark_ff::{Field, MontFp, Zero}; use crate::*;@@ -60,7 +60,7 @@ // Algorithm from Section 4 of https://eprint.iacr.org/2021/1130.
// // Checks that [p]P = [X]P - let mut x_times_point = point.mul(BigInt::new([crate::Parameters::X[0], 0, 0, 0])); + let mut x_times_point = point.mul_bigint(crate::Parameters::X); if crate::Parameters::X_IS_NEGATIVE { x_times_point = -x_times_point; }
M
bls12_381/src/curves/tests.rs
→
bls12_381/src/curves/tests.rs
@@ -39,7 +39,11 @@ let x = Fq::rand(&mut rng);
let greatest = rng.gen(); if let Some(p) = G1Affine::get_point_from_x(x, greatest) { - if !p.into_projective().mul(Fr::characteristic()).is_zero() { + if !p + .into_projective() + .mul_bigint(Fr::characteristic()) + .is_zero() + { assert!(!p.is_in_correct_subgroup_assuming_on_curve()); return; }@@ -62,7 +66,11 @@ let x = Fq2::rand(&mut rng);
let greatest = rng.gen(); if let Some(p) = G2Affine::get_point_from_x(x, greatest) { - if !p.into_projective().mul(Fr::characteristic()).is_zero() { + if !p + .into_projective() + .mul_bigint(Fr::characteristic()) + .is_zero() + { assert!(!p.is_in_correct_subgroup_assuming_on_curve()); return; }
M
cp6_782/src/curves/mod.rs
→
cp6_782/src/curves/mod.rs
@@ -2,7 +2,7 @@ use ark_ec::{models::short_weierstrass::SWCurveConfig, PairingEngine};
use ark_ff::{ biginteger::BigInteger832, fields::{BitIteratorBE, Field}, - BigInt, One, + BigInt, CyclotomicMultSubgroup, One, }; use crate::{Fq, Fq3, Fq6, Fr};