Trait snarkvm_wasm::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

Required methods

Provided methods

Computes a product of pairings.

Implementors