|
@ -47,12 +47,12 @@ pub type Fr = Fp256>; |
|
|
use lazy_static::lazy_static;
|
|
|
use lazy_static::lazy_static;
|
|
|
|
|
|
|
|
|
lazy_static! {
|
|
|
lazy_static! {
|
|
|
static ref D: Fq = Fq::from_str("168696").unwrap();
|
|
|
|
|
|
static ref D_BIG: BigInt = D.into_bigint();
|
|
|
|
|
|
static ref A: Fq = Fq::from_str("168700").unwrap();
|
|
|
|
|
|
static ref A_BIG: BigInt = A.into_bigint();
|
|
|
|
|
|
static ref Q: BigInt = Fq::MODULUS;
|
|
|
|
|
|
static ref B8: Point = Point {
|
|
|
|
|
|
|
|
|
pub static ref D: Fq = Fq::from_str("168696").unwrap();
|
|
|
|
|
|
pub static ref D_BIG: BigInt = D.into_bigint();
|
|
|
|
|
|
pub static ref A: Fq = Fq::from_str("168700").unwrap();
|
|
|
|
|
|
pub static ref A_BIG: BigInt = A.into_bigint();
|
|
|
|
|
|
pub static ref Q: BigInt = Fq::MODULUS;
|
|
|
|
|
|
pub static ref B8: Point = Point {
|
|
|
x: Fq::from_str(
|
|
|
x: Fq::from_str(
|
|
|
"5299619240641551281634865583518297030282874472190772894086521144482721001553",
|
|
|
"5299619240641551281634865583518297030282874472190772894086521144482721001553",
|
|
|
)
|
|
|
)
|
|
@ -62,13 +62,17 @@ lazy_static! { |
|
|
)
|
|
|
)
|
|
|
.unwrap(),
|
|
|
.unwrap(),
|
|
|
};
|
|
|
};
|
|
|
static ref ORDER: Fq = Fq::from_str(
|
|
|
|
|
|
|
|
|
pub static ref ORDER: Fq = Fq::from_str(
|
|
|
"21888242871839275222246405745257275088614511777268538073601725287587578984328",
|
|
|
"21888242871839275222246405745257275088614511777268538073601725287587578984328",
|
|
|
)
|
|
|
)
|
|
|
.unwrap();
|
|
|
.unwrap();
|
|
|
static ref POSEIDON: poseidon_ark::Poseidon = Poseidon::new();
|
|
|
static ref POSEIDON: poseidon_ark::Poseidon = Poseidon::new();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
pub fn generator() -> Point {
|
|
|
|
|
|
B8.clone()
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
#[derive(Clone, Debug)]
|
|
|
#[derive(Clone, Debug)]
|
|
|
pub struct PointProjective {
|
|
|
pub struct PointProjective {
|
|
|
pub x: Fq,
|
|
|
pub x: Fq,
|
|
|