Browse Source

Add constraints for Edwards curves over MNT4 (#221)

master
Weikeng Chen 4 years ago
committed by GitHub
parent
commit
885e9d7bad
9 changed files with 65 additions and 1 deletions
  1. +3
    -1
      r1cs-std/Cargo.toml
  2. +11
    -0
      r1cs-std/src/instantiated/ed_on_mnt4_298/curves.rs
  3. +9
    -0
      r1cs-std/src/instantiated/ed_on_mnt4_298/fields.rs
  4. +5
    -0
      r1cs-std/src/instantiated/ed_on_mnt4_298/mod.rs
  5. +11
    -0
      r1cs-std/src/instantiated/ed_on_mnt4_753/curves.rs
  6. +9
    -0
      r1cs-std/src/instantiated/ed_on_mnt4_753/fields.rs
  7. +5
    -0
      r1cs-std/src/instantiated/ed_on_mnt4_753/mod.rs
  8. +6
    -0
      r1cs-std/src/instantiated/mod.rs
  9. +6
    -0
      r1cs-std/src/lib.rs

+ 3
- 1
r1cs-std/Cargo.toml

@ -37,7 +37,7 @@ algebra = { path = "../algebra", default-features = false, features = [ "bls12_3
default = ["std"]
full = [
"bls12_377", "ed_on_bls12_381", "ed_on_bls12_377", "ed_on_cp6_782",
"ed_on_bw6_761", "mnt4_298", "mnt4_753", "mnt6_298", "mnt6_753"
"ed_on_bw6_761", "ed_on_mnt4_298", "ed_on_mnt4_753", "mnt4_298", "mnt4_753", "mnt6_298", "mnt6_753"
]
bls12_377 = [ "algebra/bls12_377" ]
@ -45,6 +45,8 @@ ed_on_bls12_381 = [ "algebra/ed_on_bls12_381" ]
ed_on_bls12_377 = [ "algebra/ed_on_bls12_377" ]
ed_on_cp6_782 = [ "algebra/ed_on_cp6_782" ]
ed_on_bw6_761 = [ "algebra/ed_on_bw6_761", "algebra/ed_on_cp6_782" ]
ed_on_mnt4_298 = [ "algebra/ed_on_mnt4_298" ]
ed_on_mnt4_753 = [ "algebra/ed_on_mnt4_753" ]
mnt4_298 = [ "algebra/mnt4_298" ]
mnt4_753 = [ "algebra/mnt4_753" ]
mnt6_298 = [ "algebra/mnt6_298" ]

+ 11
- 0
r1cs-std/src/instantiated/ed_on_mnt4_298/curves.rs

@ -0,0 +1,11 @@
use crate::groups::curves::twisted_edwards::AffineGadget;
use algebra::ed_on_mnt4_298::*;
use crate::instantiated::ed_on_mnt4_298::fields::FqGadget;
pub type EdwardsGadget = AffineGadget<EdwardsParameters, Fq, FqGadget>;
#[test]
fn test() {
crate::groups::curves::twisted_edwards::test::<_, EdwardsParameters, EdwardsGadget>();
}

+ 9
- 0
r1cs-std/src/instantiated/ed_on_mnt4_298/fields.rs

@ -0,0 +1,9 @@
use crate::fields::fp::FpGadget;
use algebra::ed_on_mnt4_298::fq::Fq;
pub type FqGadget = FpGadget<Fq>;
#[test]
fn test() {
crate::fields::tests::field_test::<_, Fq, FqGadget>();
}

+ 5
- 0
r1cs-std/src/instantiated/ed_on_mnt4_298/mod.rs

@ -0,0 +1,5 @@
mod curves;
mod fields;
pub use curves::*;
pub use fields::*;

+ 11
- 0
r1cs-std/src/instantiated/ed_on_mnt4_753/curves.rs

@ -0,0 +1,11 @@
use crate::groups::curves::twisted_edwards::AffineGadget;
use algebra::ed_on_mnt4_753::*;
use crate::instantiated::ed_on_mnt4_753::fields::FqGadget;
pub type EdwardsGadget = AffineGadget<EdwardsParameters, Fq, FqGadget>;
#[test]
fn test() {
crate::groups::curves::twisted_edwards::test::<_, EdwardsParameters, EdwardsGadget>();
}

+ 9
- 0
r1cs-std/src/instantiated/ed_on_mnt4_753/fields.rs

@ -0,0 +1,9 @@
use crate::fields::fp::FpGadget;
use algebra::ed_on_mnt4_753::fq::Fq;
pub type FqGadget = FpGadget<Fq>;
#[test]
fn test() {
crate::fields::tests::field_test::<_, Fq, FqGadget>();
}

+ 5
- 0
r1cs-std/src/instantiated/ed_on_mnt4_753/mod.rs

@ -0,0 +1,5 @@
mod curves;
mod fields;
pub use curves::*;
pub use fields::*;

+ 6
- 0
r1cs-std/src/instantiated/mod.rs

@ -16,6 +16,12 @@ pub mod ed_on_bw6_761;
#[cfg(feature = "ed_on_bls12_381")]
pub mod ed_on_bls12_381;
#[cfg(feature = "ed_on_mnt4_298")]
pub mod ed_on_mnt4_298;
#[cfg(feature = "ed_on_mnt4_753")]
pub mod ed_on_mnt4_753;
#[cfg(feature = "mnt4_298")]
pub mod mnt4_298;

+ 6
- 0
r1cs-std/src/lib.rs

@ -51,6 +51,12 @@ pub use instantiated::bls12_377;
#[cfg(feature = "ed_on_bls12_377")]
pub use instantiated::ed_on_bls12_377;
#[cfg(feature = "ed_on_mnt4_298")]
pub use instantiated::ed_on_mnt4_298;
#[cfg(feature = "ed_on_mnt4_753")]
pub use instantiated::ed_on_mnt4_753;
#[cfg(feature = "ed_on_cp6_782")]
pub use instantiated::ed_on_cp6_782;

Loading…
Cancel
Save