Trait snarkvm_gadgets::traits::curves::pairing::PairingGadget [−][src]
pub trait PairingGadget<Pairing: PairingEngine, F: Field> { type G1Gadget: GroupGadget<Pairing::G1Projective, F>; type G2Gadget: GroupGadget<Pairing::G2Projective, F>; type G1PreparedGadget: ToBytesGadget<F> + Clone + Debug; type G2PreparedGadget: ToBytesGadget<F> + AllocGadget<<Pairing::G2Affine as PairingCurve>::Prepared, F> + Clone + Debug; type GTGadget: FieldGadget<Pairing::Fqk, F> + Clone; fn miller_loop<CS: ConstraintSystem<F>>(
cs: CS,
p: &[Self::G1PreparedGadget],
q: &[Self::G2PreparedGadget]
) -> Result<Self::GTGadget, SynthesisError>; fn final_exponentiation<CS: ConstraintSystem<F>>(
cs: CS,
p: &Self::GTGadget
) -> Result<Self::GTGadget, SynthesisError>; fn prepare_g1<CS: ConstraintSystem<F>>(
cs: CS,
q: Self::G1Gadget
) -> Result<Self::G1PreparedGadget, SynthesisError>; fn prepare_g2<CS: ConstraintSystem<F>>(
cs: CS,
q: Self::G2Gadget
) -> Result<Self::G2PreparedGadget, SynthesisError>; fn pairing<CS: ConstraintSystem<F>>(
cs: CS,
p: Self::G1PreparedGadget,
q: Self::G2PreparedGadget
) -> Result<Self::GTGadget, SynthesisError> { ... } fn product_of_pairings<CS: ConstraintSystem<F>>(
cs: CS,
p: &[Self::G1PreparedGadget],
q: &[Self::G2PreparedGadget]
) -> Result<Self::GTGadget, SynthesisError> { ... } }
Associated Types
type G1Gadget: GroupGadget<Pairing::G1Projective, F>
type G2Gadget: GroupGadget<Pairing::G2Projective, F>
type G1PreparedGadget: ToBytesGadget<F> + Clone + Debug
type G2PreparedGadget: ToBytesGadget<F> + AllocGadget<<Pairing::G2Affine as PairingCurve>::Prepared, F> + Clone + Debug
type GTGadget: FieldGadget<Pairing::Fqk, F> + Clone
Required methods
fn miller_loop<CS: ConstraintSystem<F>>(
cs: CS,
p: &[Self::G1PreparedGadget],
q: &[Self::G2PreparedGadget]
) -> Result<Self::GTGadget, SynthesisError>
fn final_exponentiation<CS: ConstraintSystem<F>>(
cs: CS,
p: &Self::GTGadget
) -> Result<Self::GTGadget, SynthesisError>
fn prepare_g1<CS: ConstraintSystem<F>>(
cs: CS,
q: Self::G1Gadget
) -> Result<Self::G1PreparedGadget, SynthesisError>
fn prepare_g2<CS: ConstraintSystem<F>>(
cs: CS,
q: Self::G2Gadget
) -> Result<Self::G2PreparedGadget, SynthesisError>
Provided methods
fn pairing<CS: ConstraintSystem<F>>(
cs: CS,
p: Self::G1PreparedGadget,
q: Self::G2PreparedGadget
) -> Result<Self::GTGadget, SynthesisError>
fn product_of_pairings<CS: ConstraintSystem<F>>(
cs: CS,
p: &[Self::G1PreparedGadget],
q: &[Self::G2PreparedGadget]
) -> Result<Self::GTGadget, SynthesisError>
fn product_of_pairings<CS: ConstraintSystem<F>>(
cs: CS,
p: &[Self::G1PreparedGadget],
q: &[Self::G2PreparedGadget]
) -> Result<Self::GTGadget, SynthesisError>
Computes a product of pairings.