Browse Source

Implement ed_on_bn254 curve (baby-jubjub) (#230)

master
Youssef El Housni 4 years ago
committed by GitHub
parent
commit
36305e7247
6 changed files with 32 additions and 1 deletions
  1. +2
    -1
      r1cs-std/Cargo.toml
  2. +11
    -0
      r1cs-std/src/instantiated/ed_on_bn254/curves.rs
  3. +8
    -0
      r1cs-std/src/instantiated/ed_on_bn254/fields.rs
  4. +5
    -0
      r1cs-std/src/instantiated/ed_on_bn254/mod.rs
  5. +3
    -0
      r1cs-std/src/instantiated/mod.rs
  6. +3
    -0
      r1cs-std/src/lib.rs

+ 2
- 1
r1cs-std/Cargo.toml

@ -36,12 +36,13 @@ algebra = { path = "../algebra", default-features = false, features = [ "bls12_3
[features] [features]
default = ["std"] default = ["std"]
full = [ full = [
"bls12_377", "ed_on_bls12_381", "ed_on_bls12_377", "ed_on_cp6_782",
"bls12_377", "ed_on_bn254", "ed_on_bls12_381", "ed_on_bls12_377", "ed_on_cp6_782",
"ed_on_bw6_761", "ed_on_mnt4_298", "ed_on_mnt4_753", "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" ] bls12_377 = [ "algebra/bls12_377" ]
ed_on_bls12_381 = [ "algebra/ed_on_bls12_381" ] ed_on_bls12_381 = [ "algebra/ed_on_bls12_381" ]
ed_on_bn254 = [ "algebra/ed_on_bn254" ]
ed_on_bls12_377 = [ "algebra/ed_on_bls12_377" ] ed_on_bls12_377 = [ "algebra/ed_on_bls12_377" ]
ed_on_cp6_782 = [ "algebra/ed_on_cp6_782" ] 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_bw6_761 = [ "algebra/ed_on_bw6_761", "algebra/ed_on_cp6_782" ]

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

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

+ 8
- 0
r1cs-std/src/instantiated/ed_on_bn254/fields.rs

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

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

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

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

@ -13,6 +13,9 @@ pub(crate) mod ed_on_cp6_782;
#[cfg(feature = "ed_on_bw6_761")] #[cfg(feature = "ed_on_bw6_761")]
pub mod ed_on_bw6_761; pub mod ed_on_bw6_761;
#[cfg(feature = "ed_on_bn254")]
pub mod ed_on_bn254;
#[cfg(feature = "ed_on_bls12_381")] #[cfg(feature = "ed_on_bls12_381")]
pub mod ed_on_bls12_381; pub mod ed_on_bls12_381;

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

@ -60,6 +60,9 @@ pub use instantiated::ed_on_mnt4_753;
#[cfg(feature = "ed_on_cp6_782")] #[cfg(feature = "ed_on_cp6_782")]
pub use instantiated::ed_on_cp6_782; pub use instantiated::ed_on_cp6_782;
#[cfg(feature = "ed_on_bn254")]
pub use instantiated::ed_on_bn254;
#[cfg(feature = "ed_on_bls12_381")] #[cfg(feature = "ed_on_bls12_381")]
pub use instantiated::ed_on_bls12_381; pub use instantiated::ed_on_bls12_381;

Loading…
Cancel
Save