From cba0c7ef0d72458b6e20796f02dfe423b9d7a84c Mon Sep 17 00:00:00 2001 From: Pratyush Mishra Date: Wed, 28 Dec 2022 14:19:38 +0300 Subject: [PATCH] Add `frobenius_map_in_place` (#140) --- Cargo.toml | 8 ++++---- bls12_381/src/curves/g2.rs | 4 ++-- bls12_381/src/fields/tests.rs | 10 +++++----- cp6_782/src/curves/mod.rs | 6 +++--- curve-constraint-tests/src/lib.rs | 2 +- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 465d056..7474eac 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -64,9 +64,9 @@ debug-assertions = true debug = true [patch.crates-io] -ark-ff = { git = "https://github.com/arkworks-rs/algebra/", branch = "release-0.4-debug-secp256k1" } -ark-ec = { git = "https://github.com/arkworks-rs/algebra/", branch = "release-0.4-debug-secp256k1" } +ark-ff = { git = "https://github.com/arkworks-rs/algebra/", branch = "release-0.4" } +ark-ec = { git = "https://github.com/arkworks-rs/algebra/", branch = "release-0.4" } ark-poly = { git = "https://github.com/arkworks-rs/algebra/", branch = "release-0.4" } -ark-serialize = { git = "https://github.com/arkworks-rs/algebra/", branch = "release-0.4-debug-secp256k1" } -ark-algebra-test-templates = { git = "https://github.com/arkworks-rs/algebra/", branch = "release-0.4-debug-secp256k1" } +ark-serialize = { git = "https://github.com/arkworks-rs/algebra/", branch = "release-0.4" } +ark-algebra-test-templates = { git = "https://github.com/arkworks-rs/algebra/", branch = "release-0.4" } ark-r1cs-std = { git = "https://github.com/arkworks-rs/r1cs-std/", branch = "release-0.4" } \ No newline at end of file diff --git a/bls12_381/src/curves/g2.rs b/bls12_381/src/curves/g2.rs index bf8625f..7ebfb57 100644 --- a/bls12_381/src/curves/g2.rs +++ b/bls12_381/src/curves/g2.rs @@ -240,8 +240,8 @@ pub fn p_power_endomorphism(p: &Affine) -> Affine { // as implemented in the code as follows. let mut res = *p; - res.x.frobenius_map(1); - res.y.frobenius_map(1); + res.x.frobenius_map_in_place(1); + res.y.frobenius_map_in_place(1); let tmp_x = res.x.clone(); res.x.c0 = -P_POWER_ENDOMORPHISM_COEFF_0.c1 * &tmp_x.c1; diff --git a/bls12_381/src/fields/tests.rs b/bls12_381/src/fields/tests.rs index 5eaa19a..222df9f 100644 --- a/bls12_381/src/fields/tests.rs +++ b/bls12_381/src/fields/tests.rs @@ -1601,7 +1601,7 @@ fn test_fq2_doubling() { } #[test] -fn test_fq2_frobenius_map() { +fn test_fq2_frobenius_map_in_place() { let mut a = Fq2::new( Fq::from(BigInt::new([ 0x2d0078036923ffc7, @@ -1620,7 +1620,7 @@ fn test_fq2_frobenius_map() { 0x12d1137b8a6a837, ])), ); - a.frobenius_map(0); + a.frobenius_map_in_place(0); assert_eq!( a, Fq2::new( @@ -1642,7 +1642,7 @@ fn test_fq2_frobenius_map() { ])), ) ); - a.frobenius_map(1); + a.frobenius_map_in_place(1); assert_eq!( a, Fq2::new( @@ -1664,7 +1664,7 @@ fn test_fq2_frobenius_map() { ])), ) ); - a.frobenius_map(1); + a.frobenius_map_in_place(1); assert_eq!( a, Fq2::new( @@ -1686,7 +1686,7 @@ fn test_fq2_frobenius_map() { ])), ) ); - a.frobenius_map(2); + a.frobenius_map_in_place(2); assert_eq!( a, Fq2::new( diff --git a/cp6_782/src/curves/mod.rs b/cp6_782/src/curves/mod.rs index d6c2594..6a190e3 100644 --- a/cp6_782/src/curves/mod.rs +++ b/cp6_782/src/curves/mod.rs @@ -129,19 +129,19 @@ impl CP6_782 { // elt_q3 = elt^(q^3) let mut elt_q3 = elt.clone(); - elt_q3.frobenius_map(3); + elt_q3.frobenius_map_in_place(3); // elt_q3_over_elt = elt^(q^3-1) let elt_q3_over_elt = elt_q3 * elt_inv; // alpha = elt^((q^3-1) * q) let mut alpha = elt_q3_over_elt.clone(); - alpha.frobenius_map(1); + alpha.frobenius_map_in_place(1); // beta = elt^((q^3-1)*(q+1) alpha * &elt_q3_over_elt } fn final_exponentiation_last(elt: &Fq6, elt_inv: &Fq6) -> Fq6 { let mut elt_q = elt.clone(); - elt_q.frobenius_map(1); + elt_q.frobenius_map_in_place(1); let w1_part = elt_q.cyclotomic_exp(&FINAL_EXPONENT_LAST_CHUNK_W1); let w0_part = if FINAL_EXPONENT_LAST_CHUNK_W0_IS_NEG { diff --git a/curve-constraint-tests/src/lib.rs b/curve-constraint-tests/src/lib.rs index 71af555..a8060bd 100644 --- a/curve-constraint-tests/src/lib.rs +++ b/curve-constraint-tests/src/lib.rs @@ -211,7 +211,7 @@ pub mod fields { let mut a = F::rand(&mut rng); let mut a_gadget = AF::new_variable(ark_relations::ns!(cs, "a"), || Ok(a), mode)?; a_gadget.frobenius_map_in_place(i)?; - a.frobenius_map(i); + a.frobenius_map_in_place(i); assert_eq!(a_gadget.value()?, a); }