Curve
Complete curve parameters for elliptic curves in Weierstrass form: y² = x³ + ax + b
Fields
p: Prime modulus of the base field Fpn: Order of the curve (number of points in the prime-order subgroup)a: Weierstrass a parameterb: Weierstrass b parameterg: Generator of the multiplicative group Fp* (for field operations)min_one: (-1) mod p, precomputed for efficiencymin_one_order: (-1) mod n, precomputed for efficiencyG: Generator point of the curve’s prime-order subgroupb_twist: Twist curve b parameter (b₀, b₁) where b = b₀ + i·b₁ in Fp2 (for pairing curves only)modulus: Prime modulus p as 4 limbs of u96 for CircuitModulus operationsorder_modulus: Curve order n as 4 limbs of u96 for CircuitModulus operationseigenvalue: GLV endomorphism eigenvalue λ (for curves with efficient endomorphism)nG_glv_fake_glv: Precomputed point 2^(nbits-1)·G for GLV decompositionthird_root_of_unity: Cubic root of unity in Fp (for curves supporting GLV/fake-GLV)
Fully qualified path: garaga::definitions::curves::Curve
pub struct Curve {
pub p: u384,
pub n: u256,
pub a: u384,
pub b: u384,
pub g: u384,
pub min_one: u384,
pub min_one_order: u384,
pub G: G1Point,
pub b_twist: Option<(u384, u384)>,
pub modulus: [BoundedInt<0, 79228162514264337593543950335>; 4],
pub order_modulus: [BoundedInt<0, 79228162514264337593543950335>; 4],
pub eigenvalue: Option<u384>,
pub nG_glv_fake_glv: Option<G1Point>,
pub third_root_of_unity: Option<u384>,
}
Members
p
Fully qualified path: garaga::definitions::curves::Curve::p
pub p: u384
n
Fully qualified path: garaga::definitions::curves::Curve::n
pub n: u256
a
Fully qualified path: garaga::definitions::curves::Curve::a
pub a: u384
b
Fully qualified path: garaga::definitions::curves::Curve::b
pub b: u384
g
Fully qualified path: garaga::definitions::curves::Curve::g
pub g: u384
min_one
Fully qualified path: garaga::definitions::curves::Curve::min_one
pub min_one: u384
min_one_order
Fully qualified path: garaga::definitions::curves::Curve::min_one_order
pub min_one_order: u384
G
Fully qualified path: garaga::definitions::curves::Curve::G
pub G: G1Point
b_twist
Fully qualified path: garaga::definitions::curves::Curve::b_twist
pub b_twist: Option<(u384, u384)>
modulus
Fully qualified path: garaga::definitions::curves::Curve::modulus
pub modulus: [BoundedInt<0, 79228162514264337593543950335>; 4]
order_modulus
Fully qualified path: garaga::definitions::curves::Curve::order_modulus
pub order_modulus: [BoundedInt<0, 79228162514264337593543950335>; 4]
eigenvalue
Fully qualified path: garaga::definitions::curves::Curve::eigenvalue
pub eigenvalue: Option<u384>
nG_glv_fake_glv
Fully qualified path: garaga::definitions::curves::Curve::nG_glv_fake_glv
pub nG_glv_fake_glv: Option<G1Point>
third_root_of_unity
Fully qualified path: garaga::definitions::curves::Curve::third_root_of_unity
pub third_root_of_unity: Option<u384>