diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 63e87b1..de4af04 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -164,11 +164,11 @@ jobs: - name: Checkout uses: actions/checkout@v3 - - name: Install Rust (${{ matrix.rust }}) + - name: Install Rust uses: actions-rs/toolchain@v1 with: toolchain: stable - target: aarch64-unknown-none + target: thumbv6m-none-eabi override: true - uses: actions/cache@v2 @@ -183,10 +183,10 @@ jobs: uses: actions-rs/cargo@v1 with: command: check - args: --examples --workspace --exclude ark-curve-constraint-tests --target aarch64-unknown-none + args: --examples --workspace --exclude ark-curve-constraint-tests --target thumbv6m-none-eabi - name: build uses: actions-rs/cargo@v1 with: command: build - args: --workspace --exclude ark-curve-constraint-tests --target aarch64-unknown-none + args: --workspace --exclude ark-curve-constraint-tests --target thumbv6m-none-eabi diff --git a/Cargo.toml b/Cargo.toml index 9525ba3..380b904 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -71,4 +71,5 @@ ark-ec = { git = "https://github.com/arkworks-rs/algebra/" } ark-poly = { git = "https://github.com/arkworks-rs/algebra/" } ark-serialize = { git = "https://github.com/arkworks-rs/algebra/" } ark-algebra-test-templates = { git = "https://github.com/arkworks-rs/algebra/" } -ark-r1cs-std = { git = "https://github.com/arkworks-rs/r1cs-std/" } +ark-algebra-bench-templates = { git = "https://github.com/arkworks-rs/algebra/" } +ark-r1cs-std = { git = "https://github.com/mmaker/ark-r1cs-std/", branch = "feature/additive-groups" } diff --git a/bls12_377/src/curves/g1.rs b/bls12_377/src/curves/g1.rs index 6ecca9f..8073f8f 100644 --- a/bls12_377/src/curves/g1.rs +++ b/bls12_377/src/curves/g1.rs @@ -10,7 +10,7 @@ use ark_ec::{ }, CurveConfig, }; -use ark_ff::{Field, MontFp, PrimeField, Zero}; +use ark_ff::{AdditiveGroup, Field, MontFp, PrimeField, Zero}; use ark_std::{ops::Neg, One}; use super::g1_swu_iso::{SwuIsoConfig, ISOGENY_MAP_TO_G1}; diff --git a/bls12_377/src/curves/g2.rs b/bls12_377/src/curves/g2.rs index 3bdd8b3..5ccbfc5 100644 --- a/bls12_377/src/curves/g2.rs +++ b/bls12_377/src/curves/g2.rs @@ -4,10 +4,10 @@ use ark_ec::{ hashing::curve_maps::wb::{IsogenyMap, WBConfig}, models::CurveConfig, short_weierstrass::{Affine, Projective, SWCurveConfig}, - AffineRepr, CurveGroup, Group, + AffineRepr, CurveGroup, PrimeGroup, }; -use ark_ff::{Field, MontFp, Zero}; +use ark_ff::{AdditiveGroup, Field, MontFp, Zero}; use ark_std::ops::Neg; use crate::*; diff --git a/bls12_381/benches/bls12_381.rs b/bls12_381/benches/bls12_381.rs index ac9d6ff..8a54887 100644 --- a/bls12_381/benches/bls12_381.rs +++ b/bls12_381/benches/bls12_381.rs @@ -1,5 +1,4 @@ use ark_algebra_bench_templates::*; - use ark_bls12_381::{ fq::Fq, fq2::Fq2, fr::Fr, Bls12_381, Fq12, G1Projective as G1, G2Projective as G2, }; diff --git a/bls12_381/src/curves/g1.rs b/bls12_381/src/curves/g1.rs index 520348c..7c7db8a 100644 --- a/bls12_381/src/curves/g1.rs +++ b/bls12_381/src/curves/g1.rs @@ -4,9 +4,9 @@ use ark_ec::{ hashing::curve_maps::wb::{IsogenyMap, WBConfig}, models::CurveConfig, short_weierstrass::{Affine, SWCurveConfig}, - AffineRepr, Group, + AffineRepr, PrimeGroup, }; -use ark_ff::{Field, MontFp, PrimeField, Zero}; +use ark_ff::{AdditiveGroup, MontFp, PrimeField, Zero}; use ark_serialize::{Compress, SerializationError}; use ark_std::{ops::Neg, One}; diff --git a/bls12_381/src/curves/g2.rs b/bls12_381/src/curves/g2.rs index ec98dd0..39ac6b9 100644 --- a/bls12_381/src/curves/g2.rs +++ b/bls12_381/src/curves/g2.rs @@ -6,9 +6,9 @@ use ark_ec::{ hashing::curve_maps::wb::{IsogenyMap, WBConfig}, models::CurveConfig, short_weierstrass::{Affine, Projective, SWCurveConfig}, - AffineRepr, CurveGroup, Group, + AffineRepr, CurveGroup, PrimeGroup, }; -use ark_ff::{Field, MontFp, Zero}; +use ark_ff::{AdditiveGroup, Field, MontFp, Zero}; use ark_serialize::{Compress, SerializationError}; use super::{ diff --git a/bls12_381/src/curves/tests/mod.rs b/bls12_381/src/curves/tests/mod.rs index edbced8..a75fb5b 100755 --- a/bls12_381/src/curves/tests/mod.rs +++ b/bls12_381/src/curves/tests/mod.rs @@ -1,5 +1,5 @@ use ark_algebra_test_templates::*; -use ark_ec::{AffineRepr, CurveGroup, Group}; +use ark_ec::{AffineRepr, CurveGroup, PrimeGroup}; use ark_ff::{fields::Field, One, UniformRand, Zero}; use ark_serialize::{CanonicalDeserialize, CanonicalSerialize, Compress, Validate}; use ark_std::{rand::Rng, test_rng, vec}; diff --git a/bls12_381/src/fields/tests.rs b/bls12_381/src/fields/tests.rs index 222df9f..ab3f77f 100644 --- a/bls12_381/src/fields/tests.rs +++ b/bls12_381/src/fields/tests.rs @@ -1,4 +1,5 @@ use ark_algebra_test_templates::*; +use ark_ec::AdditiveGroup; use ark_ff::{ biginteger::{BigInt, BigInteger, BigInteger384}, fields::{FftField, Field, Fp12Config, Fp2Config, Fp6Config, PrimeField}, diff --git a/bn254/src/curves/g1.rs b/bn254/src/curves/g1.rs index 25a6e59..a4c08d8 100644 --- a/bn254/src/curves/g1.rs +++ b/bn254/src/curves/g1.rs @@ -2,7 +2,7 @@ use ark_ec::{ models::{short_weierstrass::SWCurveConfig, CurveConfig}, short_weierstrass::Affine, }; -use ark_ff::{Field, MontFp, Zero}; +use ark_ff::{AdditiveGroup, Field, MontFp, Zero}; use crate::{Fq, Fr}; diff --git a/bn254/src/curves/g2.rs b/bn254/src/curves/g2.rs index 7e45d6b..cc49a56 100644 --- a/bn254/src/curves/g2.rs +++ b/bn254/src/curves/g2.rs @@ -2,7 +2,7 @@ use ark_ec::{ models::{short_weierstrass::SWCurveConfig, CurveConfig}, short_weierstrass::Affine, }; -use ark_ff::{Field, MontFp, Zero}; +use ark_ff::{AdditiveGroup, MontFp, Zero}; use crate::{Fq, Fq2, Fr}; diff --git a/bw6_761/src/curves/g1.rs b/bw6_761/src/curves/g1.rs index f3cb3ae..e902057 100644 --- a/bw6_761/src/curves/g1.rs +++ b/bw6_761/src/curves/g1.rs @@ -2,7 +2,7 @@ use ark_ec::{ models::{short_weierstrass::SWCurveConfig, CurveConfig}, short_weierstrass::{Affine, Projective}, }; -use ark_ff::{Field, MontFp}; +use ark_ff::{AdditiveGroup, MontFp}; use crate::{Fq, Fr}; diff --git a/bw6_761/src/curves/g2.rs b/bw6_761/src/curves/g2.rs index abf83d4..996c642 100644 --- a/bw6_761/src/curves/g2.rs +++ b/bw6_761/src/curves/g2.rs @@ -2,7 +2,7 @@ use ark_ec::{ models::{short_weierstrass::SWCurveConfig, CurveConfig}, short_weierstrass::{Affine, Projective}, }; -use ark_ff::{Field, MontFp}; +use ark_ff::{AdditiveGroup, MontFp}; use crate::{Fq, Fr}; diff --git a/bw6_761/src/fields/fq3.rs b/bw6_761/src/fields/fq3.rs index 35c4bfc..910c2e1 100644 --- a/bw6_761/src/fields/fq3.rs +++ b/bw6_761/src/fields/fq3.rs @@ -1,6 +1,6 @@ use ark_ff::{ fields::fp3::{Fp3, Fp3Config}, - Field, MontFp, + AdditiveGroup, Field, MontFp, }; use crate::Fq; diff --git a/bw6_761/src/fields/fq6.rs b/bw6_761/src/fields/fq6.rs index 056dd64..426aa1c 100644 --- a/bw6_761/src/fields/fq6.rs +++ b/bw6_761/src/fields/fq6.rs @@ -1,6 +1,6 @@ use ark_ff::{ fields::fp6_2over3::{Fp6, Fp6Config}, - Field, MontFp, + AdditiveGroup, Field, MontFp, }; use crate::{Fq, Fq3, Fq3Config}; diff --git a/cp6_782/src/curves/g2.rs b/cp6_782/src/curves/g2.rs index 806fc5d..ebea460 100644 --- a/cp6_782/src/curves/g2.rs +++ b/cp6_782/src/curves/g2.rs @@ -3,7 +3,7 @@ use ark_ec::{ short_weierstrass::{Affine, Projective, SWCurveConfig}, AffineRepr, CurveGroup, }; -use ark_ff::{Field, MontFp}; +use ark_ff::{AdditiveGroup, MontFp}; use ark_serialize::{CanonicalDeserialize, CanonicalSerialize}; use ark_std::vec::Vec; diff --git a/cp6_782/src/curves/mod.rs b/cp6_782/src/curves/mod.rs index 6a190e3..f798007 100644 --- a/cp6_782/src/curves/mod.rs +++ b/cp6_782/src/curves/mod.rs @@ -3,7 +3,8 @@ use ark_ec::{ pairing::{MillerLoopOutput, Pairing, PairingOutput}, }; use ark_ff::{ - biginteger::BigInteger832, BigInt, BitIteratorBE, CyclotomicMultSubgroup, Field, One, + biginteger::BigInteger832, AdditiveGroup, BigInt, BitIteratorBE, CyclotomicMultSubgroup, Field, + One, }; use itertools::Itertools; diff --git a/cp6_782/src/fields/fq3.rs b/cp6_782/src/fields/fq3.rs index a017113..5677126 100644 --- a/cp6_782/src/fields/fq3.rs +++ b/cp6_782/src/fields/fq3.rs @@ -1,6 +1,6 @@ use ark_ff::{ fields::fp3::{Fp3, Fp3Config}, - Field, MontFp, + AdditiveGroup, Field, MontFp, }; use crate::Fq; diff --git a/cp6_782/src/fields/fq6.rs b/cp6_782/src/fields/fq6.rs index f32601c..a82f8ca 100644 --- a/cp6_782/src/fields/fq6.rs +++ b/cp6_782/src/fields/fq6.rs @@ -1,6 +1,6 @@ use ark_ff::{ fields::fp6_2over3::{Fp6, Fp6Config}, - Field, MontFp, + AdditiveGroup, Field, MontFp, }; use crate::{Fq, Fq3, Fq3Config}; diff --git a/curve-constraint-tests/src/lib.rs b/curve-constraint-tests/src/lib.rs index a8060bd..69547e9 100644 --- a/curve-constraint-tests/src/lib.rs +++ b/curve-constraint-tests/src/lib.rs @@ -225,7 +225,7 @@ pub mod fields { pub mod curves { use ark_ec::{ short_weierstrass::Projective as SWProjective, twisted_edwards::Projective as TEProjective, - CurveGroup, Group, + AdditiveGroup, CurveGroup, }; use ark_ff::{BitIteratorLE, Field, One, PrimeField}; use ark_relations::r1cs::{ConstraintSystem, SynthesisError}; diff --git a/ed_on_bls12_381/src/fields/tests.rs b/ed_on_bls12_381/src/fields/tests.rs index 55ccd7b..4b4b524 100644 --- a/ed_on_bls12_381/src/fields/tests.rs +++ b/ed_on_bls12_381/src/fields/tests.rs @@ -1,5 +1,6 @@ use crate::{Fq, Fr}; use ark_algebra_test_templates::*; +use ark_ec::AdditiveGroup; use ark_ff::{ biginteger::BigInteger256 as BigInteger, fields::{Field, LegendreSymbol::*}, diff --git a/ed_on_bls12_381_bandersnatch/src/curves/mod.rs b/ed_on_bls12_381_bandersnatch/src/curves/mod.rs index 7fe48b4..f6c7d2f 100644 --- a/ed_on_bls12_381_bandersnatch/src/curves/mod.rs +++ b/ed_on_bls12_381_bandersnatch/src/curves/mod.rs @@ -3,7 +3,7 @@ use ark_ec::{ short_weierstrass::{self, SWCurveConfig}, twisted_edwards::{Affine, MontCurveConfig, Projective, TECurveConfig}, }; -use ark_ff::{Field, MontFp}; +use ark_ff::{AdditiveGroup, MontFp}; use crate::{Fq, Fr}; diff --git a/ed_on_bls12_381_bandersnatch/src/fields/tests.rs b/ed_on_bls12_381_bandersnatch/src/fields/tests.rs index 6e78395..401235c 100644 --- a/ed_on_bls12_381_bandersnatch/src/fields/tests.rs +++ b/ed_on_bls12_381_bandersnatch/src/fields/tests.rs @@ -1,5 +1,6 @@ use crate::{Fq, Fr}; use ark_algebra_test_templates::*; +use ark_ec::AdditiveGroup; use ark_ff::{ biginteger::BigInteger256 as BigInteger, fields::{Field, LegendreSymbol::*}, diff --git a/ed_on_bn254/src/fields/tests.rs b/ed_on_bn254/src/fields/tests.rs index 4fd3bf1..5002c5d 100644 --- a/ed_on_bn254/src/fields/tests.rs +++ b/ed_on_bn254/src/fields/tests.rs @@ -1,4 +1,5 @@ use ark_algebra_test_templates::*; +use ark_ec::AdditiveGroup; use ark_ff::{ biginteger::BigInteger256 as BigInteger, fields::{Field, LegendreSymbol::*}, diff --git a/mnt4_298/src/curves/g2.rs b/mnt4_298/src/curves/g2.rs index fe640d7..87a89f5 100644 --- a/mnt4_298/src/curves/g2.rs +++ b/mnt4_298/src/curves/g2.rs @@ -3,7 +3,7 @@ use ark_ec::{ mnt4::MNT4Config, models::{short_weierstrass::SWCurveConfig, CurveConfig}, }; -use ark_ff::{Field, MontFp}; +use ark_ff::{AdditiveGroup, MontFp}; use crate::{Fq, Fq2, Fr, G1_COEFF_A_NON_RESIDUE}; diff --git a/mnt4_298/src/curves/mod.rs b/mnt4_298/src/curves/mod.rs index ac821bf..0dbc71b 100644 --- a/mnt4_298/src/curves/mod.rs +++ b/mnt4_298/src/curves/mod.rs @@ -1,5 +1,5 @@ use ark_ec::models::mnt4::{MNT4Config, MNT4}; -use ark_ff::{biginteger::BigInteger320, BigInt, Field, MontFp}; +use ark_ff::{biginteger::BigInteger320, AdditiveGroup, BigInt, Field, MontFp}; use crate::{Fq, Fq2, Fq2Config, Fq4Config, Fr}; diff --git a/mnt4_298/src/fields/fq4.rs b/mnt4_298/src/fields/fq4.rs index 952fcd2..cad65f5 100644 --- a/mnt4_298/src/fields/fq4.rs +++ b/mnt4_298/src/fields/fq4.rs @@ -1,6 +1,6 @@ use ark_ff::{ fields::fp4::{Fp4, Fp4Config}, - Field, MontFp, + AdditiveGroup, Field, MontFp, }; use crate::{Fq, Fq2, Fq2Config}; diff --git a/mnt4_753/src/curves/g2.rs b/mnt4_753/src/curves/g2.rs index 94e7d44..fee6fe1 100644 --- a/mnt4_753/src/curves/g2.rs +++ b/mnt4_753/src/curves/g2.rs @@ -3,7 +3,7 @@ use ark_ec::{ mnt4::MNT4Config, models::{short_weierstrass::SWCurveConfig, CurveConfig}, }; -use ark_ff::{Field, MontFp}; +use ark_ff::{AdditiveGroup, MontFp}; use crate::{Fq, Fq2, Fr, G1_COEFF_A_NON_RESIDUE}; diff --git a/mnt4_753/src/curves/mod.rs b/mnt4_753/src/curves/mod.rs index 68381dc..85aeb72 100644 --- a/mnt4_753/src/curves/mod.rs +++ b/mnt4_753/src/curves/mod.rs @@ -1,7 +1,7 @@ use ark_ec::models::mnt4::{MNT4Config, MNT4}; use ark_ff::{ biginteger::{BigInt, BigInteger768}, - Field, Fp2, MontFp, + AdditiveGroup, Field, Fp2, MontFp, }; use crate::{Fq, Fq2Config, Fq4Config, Fr}; diff --git a/mnt4_753/src/fields/fq4.rs b/mnt4_753/src/fields/fq4.rs index 8233d4a..02c391a 100644 --- a/mnt4_753/src/fields/fq4.rs +++ b/mnt4_753/src/fields/fq4.rs @@ -1,6 +1,6 @@ use ark_ff::{ fields::fp4::{Fp4, Fp4Config}, - Field, MontFp, + AdditiveGroup, Field, MontFp, }; use crate::{Fq, Fq2, Fq2Config}; diff --git a/mnt6_298/src/curves/g2.rs b/mnt6_298/src/curves/g2.rs index 6d3b78e..22b2ec0 100644 --- a/mnt6_298/src/curves/g2.rs +++ b/mnt6_298/src/curves/g2.rs @@ -3,7 +3,7 @@ use ark_ec::{ mnt6::MNT6Config, models::{short_weierstrass::SWCurveConfig, CurveConfig}, }; -use ark_ff::{Field, MontFp}; +use ark_ff::{AdditiveGroup, MontFp}; use crate::{g1, Fq, Fq3, Fr}; diff --git a/mnt6_298/src/curves/mod.rs b/mnt6_298/src/curves/mod.rs index 51e5eb0..70e1ebc 100644 --- a/mnt6_298/src/curves/mod.rs +++ b/mnt6_298/src/curves/mod.rs @@ -2,7 +2,7 @@ use ark_ec::{ models::mnt6::{MNT6Config, MNT6}, short_weierstrass::SWCurveConfig, }; -use ark_ff::{biginteger::BigInteger320, BigInt, Field, Fp3}; +use ark_ff::{biginteger::BigInteger320, AdditiveGroup, BigInt, Field, Fp3}; use crate::{Fq, Fq3Config, Fq6Config, Fr}; diff --git a/mnt6_298/src/fields/fq3.rs b/mnt6_298/src/fields/fq3.rs index 938b1a3..4c77a3a 100644 --- a/mnt6_298/src/fields/fq3.rs +++ b/mnt6_298/src/fields/fq3.rs @@ -1,6 +1,6 @@ use ark_ff::{ fields::fp3::{Fp3, Fp3Config}, - Field, MontFp, + AdditiveGroup, Field, MontFp, }; use crate::fq::Fq; diff --git a/mnt6_298/src/fields/fq6.rs b/mnt6_298/src/fields/fq6.rs index b705170..2c6ba0a 100644 --- a/mnt6_298/src/fields/fq6.rs +++ b/mnt6_298/src/fields/fq6.rs @@ -1,6 +1,6 @@ use ark_ff::{ fields::fp6_2over3::{Fp6, Fp6Config}, - Field, MontFp, + AdditiveGroup, Field, MontFp, }; use crate::{Fq, Fq3, Fq3Config}; diff --git a/mnt6_753/src/curves/g2.rs b/mnt6_753/src/curves/g2.rs index e20169f..494bc49 100644 --- a/mnt6_753/src/curves/g2.rs +++ b/mnt6_753/src/curves/g2.rs @@ -3,7 +3,7 @@ use ark_ec::{ mnt6::MNT6Config, models::{short_weierstrass::SWCurveConfig, CurveConfig}, }; -use ark_ff::{Field, MontFp}; +use ark_ff::{AdditiveGroup, MontFp}; use crate::{g1, Fq, Fq3, Fr}; diff --git a/mnt6_753/src/curves/mod.rs b/mnt6_753/src/curves/mod.rs index 52a1cf8..2546764 100644 --- a/mnt6_753/src/curves/mod.rs +++ b/mnt6_753/src/curves/mod.rs @@ -2,7 +2,7 @@ use ark_ec::models::{ mnt6::{MNT6Config, MNT6}, short_weierstrass::SWCurveConfig, }; -use ark_ff::{biginteger::BigInteger768, BigInt, Field, Fp3}; +use ark_ff::{biginteger::BigInteger768, AdditiveGroup, BigInt, Field, Fp3}; use crate::{Fq, Fq3Config, Fq6Config, Fr}; diff --git a/mnt6_753/src/fields/fq3.rs b/mnt6_753/src/fields/fq3.rs index 71e3f8a..8fbc119 100644 --- a/mnt6_753/src/fields/fq3.rs +++ b/mnt6_753/src/fields/fq3.rs @@ -1,6 +1,6 @@ use ark_ff::{ fields::fp3::{Fp3, Fp3Config}, - Field, MontFp, + AdditiveGroup, Field, MontFp, }; use crate::fq::Fq; diff --git a/mnt6_753/src/fields/fq6.rs b/mnt6_753/src/fields/fq6.rs index 0a41c0b..91c748b 100644 --- a/mnt6_753/src/fields/fq6.rs +++ b/mnt6_753/src/fields/fq6.rs @@ -1,6 +1,6 @@ use ark_ff::{ fields::fp6_2over3::{Fp6, Fp6Config}, - Field, MontFp, + AdditiveGroup, Field, MontFp, }; use crate::{Fq, Fq3, Fq3Config}; diff --git a/pallas/src/curves/mod.rs b/pallas/src/curves/mod.rs index de331f3..486e890 100644 --- a/pallas/src/curves/mod.rs +++ b/pallas/src/curves/mod.rs @@ -2,7 +2,7 @@ use ark_ec::{ models::CurveConfig, short_weierstrass::{self as sw, SWCurveConfig}, }; -use ark_ff::{Field, MontFp, Zero}; +use ark_ff::{AdditiveGroup, Field, MontFp, Zero}; use crate::{fq::Fq, fr::Fr}; diff --git a/secp256k1/src/curves/mod.rs b/secp256k1/src/curves/mod.rs index b9ef08e..5adc6d1 100644 --- a/secp256k1/src/curves/mod.rs +++ b/secp256k1/src/curves/mod.rs @@ -2,7 +2,7 @@ use ark_ec::{ models::CurveConfig, short_weierstrass::{self as sw, SWCurveConfig}, }; -use ark_ff::{Field, MontFp, Zero}; +use ark_ff::{AdditiveGroup, Field, MontFp, Zero}; use crate::{fq::Fq, fr::Fr}; diff --git a/secq256k1/src/curves/mod.rs b/secq256k1/src/curves/mod.rs index 65df02e..e2ca1a7 100644 --- a/secq256k1/src/curves/mod.rs +++ b/secq256k1/src/curves/mod.rs @@ -2,7 +2,7 @@ use ark_ec::{ models::CurveConfig, short_weierstrass::{self as sw, SWCurveConfig}, }; -use ark_ff::{Field, MontFp, Zero}; +use ark_ff::{AdditiveGroup, Field, MontFp, Zero}; use crate::{fq::Fq, fr::Fr}; diff --git a/vesta/src/curves/mod.rs b/vesta/src/curves/mod.rs index 7135499..e423387 100644 --- a/vesta/src/curves/mod.rs +++ b/vesta/src/curves/mod.rs @@ -3,7 +3,7 @@ use ark_ec::{ models::CurveConfig, short_weierstrass::{self as sw, SWCurveConfig}, }; -use ark_ff::{Field, MontFp, Zero}; +use ark_ff::{AdditiveGroup, Field, MontFp, Zero}; #[cfg(test)] mod tests;