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
type G1Gadget: GroupGadget<<Pairing as PairingEngine>::G1Projective, F>[src]
type G2Gadget: GroupGadget<<Pairing as PairingEngine>::G2Projective, F>[src]
type G1PreparedGadget: ToBytesGadget<F> + Clone + Debug[src]
type G2PreparedGadget: ToBytesGadget<F> + AllocGadget<<<Pairing as PairingEngine>::G2Affine as PairingCurve>::Prepared, F> + Clone + Debug[src]
type GTGadget: FieldGadget<<Pairing as PairingEngine>::Fqk, F> + Clone[src]
Required methods
fn miller_loop<CS>(
cs: CS,
p: &[Self::G1PreparedGadget],
q: &[Self::G2PreparedGadget]
) -> Result<Self::GTGadget, SynthesisError> where
CS: ConstraintSystem<F>, [src]
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>, [src]
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>, [src]
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>, [src]
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>, [src]
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>, [src]
fn product_of_pairings<CS>(
cs: CS,
p: &[Self::G1PreparedGadget],
q: &[Self::G2PreparedGadget]
) -> Result<Self::GTGadget, SynthesisError> where
CS: ConstraintSystem<F>, [src]Computes a product of pairings.
Implementors
impl<P> PairingGadget<Bls12<P>, <P as Bls12Parameters>::Fp> for Bls12PairingGadget<P> where
P: Bls12Parameters,
GroupAffine<<P as Bls12Parameters>::G1Parameters>: PairingCurve,
GroupAffine<<P as Bls12Parameters>::G2Parameters>: PairingCurve,
<GroupAffine<<P as Bls12Parameters>::G1Parameters> as AffineCurve>::BaseField == <<P as Bls12Parameters>::G1Parameters as ModelParameters>::BaseField,
<GroupAffine<<P as Bls12Parameters>::G1Parameters> as AffineCurve>::ScalarField == <<P as Bls12Parameters>::G1Parameters as ModelParameters>::ScalarField,
<GroupAffine<<P as Bls12Parameters>::G1Parameters> as AffineCurve>::Projective == GroupProjective<<P as Bls12Parameters>::G1Parameters>,
<GroupAffine<<P as Bls12Parameters>::G1Parameters> as PairingCurve>::PairWith == GroupAffine<<P as Bls12Parameters>::G2Parameters>,
<GroupAffine<<P as Bls12Parameters>::G1Parameters> as PairingCurve>::Prepared == G1Prepared<P>,
<GroupAffine<<P as Bls12Parameters>::G1Parameters> as PairingCurve>::PairingResult == Fp12<<P as Bls12Parameters>::Fp12Params>,
<GroupAffine<<P as Bls12Parameters>::G2Parameters> as AffineCurve>::BaseField == <<P as Bls12Parameters>::G2Parameters as ModelParameters>::BaseField,
<GroupAffine<<P as Bls12Parameters>::G2Parameters> as AffineCurve>::ScalarField == <<P as Bls12Parameters>::G1Parameters as ModelParameters>::ScalarField,
<GroupAffine<<P as Bls12Parameters>::G2Parameters> as AffineCurve>::Projective == GroupProjective<<P as Bls12Parameters>::G2Parameters>,
<GroupAffine<<P as Bls12Parameters>::G2Parameters> as PairingCurve>::PairWith == GroupAffine<<P as Bls12Parameters>::G1Parameters>,
<GroupAffine<<P as Bls12Parameters>::G2Parameters> as PairingCurve>::Prepared == G2Prepared<P>,
<GroupAffine<<P as Bls12Parameters>::G2Parameters> as PairingCurve>::PairingResult == Fp12<<P as Bls12Parameters>::Fp12Params>, [src]
impl<P> PairingGadget<Bls12<P>, <P as Bls12Parameters>::Fp> for Bls12PairingGadget<P> where
P: Bls12Parameters,
GroupAffine<<P as Bls12Parameters>::G1Parameters>: PairingCurve,
GroupAffine<<P as Bls12Parameters>::G2Parameters>: PairingCurve,
<GroupAffine<<P as Bls12Parameters>::G1Parameters> as AffineCurve>::BaseField == <<P as Bls12Parameters>::G1Parameters as ModelParameters>::BaseField,
<GroupAffine<<P as Bls12Parameters>::G1Parameters> as AffineCurve>::ScalarField == <<P as Bls12Parameters>::G1Parameters as ModelParameters>::ScalarField,
<GroupAffine<<P as Bls12Parameters>::G1Parameters> as AffineCurve>::Projective == GroupProjective<<P as Bls12Parameters>::G1Parameters>,
<GroupAffine<<P as Bls12Parameters>::G1Parameters> as PairingCurve>::PairWith == GroupAffine<<P as Bls12Parameters>::G2Parameters>,
<GroupAffine<<P as Bls12Parameters>::G1Parameters> as PairingCurve>::Prepared == G1Prepared<P>,
<GroupAffine<<P as Bls12Parameters>::G1Parameters> as PairingCurve>::PairingResult == Fp12<<P as Bls12Parameters>::Fp12Params>,
<GroupAffine<<P as Bls12Parameters>::G2Parameters> as AffineCurve>::BaseField == <<P as Bls12Parameters>::G2Parameters as ModelParameters>::BaseField,
<GroupAffine<<P as Bls12Parameters>::G2Parameters> as AffineCurve>::ScalarField == <<P as Bls12Parameters>::G1Parameters as ModelParameters>::ScalarField,
<GroupAffine<<P as Bls12Parameters>::G2Parameters> as AffineCurve>::Projective == GroupProjective<<P as Bls12Parameters>::G2Parameters>,
<GroupAffine<<P as Bls12Parameters>::G2Parameters> as PairingCurve>::PairWith == GroupAffine<<P as Bls12Parameters>::G1Parameters>,
<GroupAffine<<P as Bls12Parameters>::G2Parameters> as PairingCurve>::Prepared == G2Prepared<P>,
<GroupAffine<<P as Bls12Parameters>::G2Parameters> as PairingCurve>::PairingResult == Fp12<<P as Bls12Parameters>::Fp12Params>, [src]type G1Gadget = AffineGadget<<P as Bls12Parameters>::G1Parameters, <P as Bls12Parameters>::Fp, FpGadget<<P as Bls12Parameters>::Fp>>
type G1PreparedGadget = G1PreparedGadget<P>
type G2Gadget = AffineGadget<<P as Bls12Parameters>::G2Parameters, <P as Bls12Parameters>::Fp, Fp2Gadget<<P as Bls12Parameters>::Fp2Params, <P as Bls12Parameters>::Fp>>
type G2PreparedGadget = G2PreparedGadget<P>
type GTGadget = Fp12Gadget<<P as Bls12Parameters>::Fp12Params, <P as Bls12Parameters>::Fp>
pub fn miller_loop<CS>(
cs: CS,
ps: &[<Bls12PairingGadget<P> as PairingGadget<Bls12<P>, <P as Bls12Parameters>::Fp>>::G1PreparedGadget],
qs: &[<Bls12PairingGadget<P> as PairingGadget<Bls12<P>, <P as Bls12Parameters>::Fp>>::G2PreparedGadget]
) -> Result<<Bls12PairingGadget<P> as PairingGadget<Bls12<P>, <P as Bls12Parameters>::Fp>>::GTGadget, SynthesisError> where
CS: ConstraintSystem<<P as Bls12Parameters>::Fp>, [src]
cs: CS,
ps: &[<Bls12PairingGadget<P> as PairingGadget<Bls12<P>, <P as Bls12Parameters>::Fp>>::G1PreparedGadget],
qs: &[<Bls12PairingGadget<P> as PairingGadget<Bls12<P>, <P as Bls12Parameters>::Fp>>::G2PreparedGadget]
) -> Result<<Bls12PairingGadget<P> as PairingGadget<Bls12<P>, <P as Bls12Parameters>::Fp>>::GTGadget, SynthesisError> where
CS: ConstraintSystem<<P as Bls12Parameters>::Fp>,
pub fn final_exponentiation<CS>(
cs: CS,
f: &<Bls12PairingGadget<P> as PairingGadget<Bls12<P>, <P as Bls12Parameters>::Fp>>::GTGadget
) -> Result<<Bls12PairingGadget<P> as PairingGadget<Bls12<P>, <P as Bls12Parameters>::Fp>>::GTGadget, SynthesisError> where
CS: ConstraintSystem<<P as Bls12Parameters>::Fp>, [src]
cs: CS,
f: &<Bls12PairingGadget<P> as PairingGadget<Bls12<P>, <P as Bls12Parameters>::Fp>>::GTGadget
) -> Result<<Bls12PairingGadget<P> as PairingGadget<Bls12<P>, <P as Bls12Parameters>::Fp>>::GTGadget, SynthesisError> where
CS: ConstraintSystem<<P as Bls12Parameters>::Fp>,
pub fn prepare_g1<CS>(
cs: CS,
p: <Bls12PairingGadget<P> as PairingGadget<Bls12<P>, <P as Bls12Parameters>::Fp>>::G1Gadget
) -> Result<<Bls12PairingGadget<P> as PairingGadget<Bls12<P>, <P as Bls12Parameters>::Fp>>::G1PreparedGadget, SynthesisError> where
CS: ConstraintSystem<<P as Bls12Parameters>::Fp>, [src]
cs: CS,
p: <Bls12PairingGadget<P> as PairingGadget<Bls12<P>, <P as Bls12Parameters>::Fp>>::G1Gadget
) -> Result<<Bls12PairingGadget<P> as PairingGadget<Bls12<P>, <P as Bls12Parameters>::Fp>>::G1PreparedGadget, SynthesisError> where
CS: ConstraintSystem<<P as Bls12Parameters>::Fp>,
pub fn prepare_g2<CS>(
cs: CS,
q: <Bls12PairingGadget<P> as PairingGadget<Bls12<P>, <P as Bls12Parameters>::Fp>>::G2Gadget
) -> Result<<Bls12PairingGadget<P> as PairingGadget<Bls12<P>, <P as Bls12Parameters>::Fp>>::G2PreparedGadget, SynthesisError> where
CS: ConstraintSystem<<P as Bls12Parameters>::Fp>, [src]
cs: CS,
q: <Bls12PairingGadget<P> as PairingGadget<Bls12<P>, <P as Bls12Parameters>::Fp>>::G2Gadget
) -> Result<<Bls12PairingGadget<P> as PairingGadget<Bls12<P>, <P as Bls12Parameters>::Fp>>::G2PreparedGadget, SynthesisError> where
CS: ConstraintSystem<<P as Bls12Parameters>::Fp>,