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