Enum proof_system::sub_protocols::SubProtocol
source · [−]pub enum SubProtocol<'a, E: PairingEngine, G: AffineCurve> {
PoKBBSSignatureG1(PoKBBSSigG1SubProtocol<'a, E>),
AccumulatorMembership(AccumulatorMembershipSubProtocol<'a, E>),
AccumulatorNonMembership(AccumulatorNonMembershipSubProtocol<'a, E>),
PoKDiscreteLogs(SchnorrProtocol<'a, G>),
Saver(SaverProtocol<'a, E>),
BoundCheckProtocol(BoundCheckProtocol<'a, E>),
R1CSLegogroth16Protocol(R1CSLegogroth16Protocol<'a, E>),
}Expand description
Various sub-protocols that are executed to create a StatementProof which are then combined to
form a Proof
Variants
PoKBBSSignatureG1(PoKBBSSigG1SubProtocol<'a, E>)
AccumulatorMembership(AccumulatorMembershipSubProtocol<'a, E>)
AccumulatorNonMembership(AccumulatorNonMembershipSubProtocol<'a, E>)
PoKDiscreteLogs(SchnorrProtocol<'a, G>)
Saver(SaverProtocol<'a, E>)
For verifiable encryption using SAVER
BoundCheckProtocol(BoundCheckProtocol<'a, E>)
For range proof using LegoGroth16
R1CSLegogroth16Protocol(R1CSLegogroth16Protocol<'a, E>)
Implementations
sourceimpl<'a, E: PairingEngine, G: AffineCurve<ScalarField = E::Fr>> SubProtocol<'a, E, G>
impl<'a, E: PairingEngine, G: AffineCurve<ScalarField = E::Fr>> SubProtocol<'a, E, G>
pub fn challenge_contribution<W: Write>(
&self,
writer: W
) -> Result<(), ProofSystemError>
pub fn gen_proof_contribution(
&mut self,
challenge: &E::Fr
) -> Result<StatementProof<E, G>, ProofSystemError>
Trait Implementations
sourceimpl<'a, E: Clone + PairingEngine, G: Clone + AffineCurve> Clone for SubProtocol<'a, E, G>
impl<'a, E: Clone + PairingEngine, G: Clone + AffineCurve> Clone for SubProtocol<'a, E, G>
sourcefn clone(&self) -> SubProtocol<'a, E, G>
fn clone(&self) -> SubProtocol<'a, E, G>
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moresourceimpl<'a, E: Debug + PairingEngine, G: Debug + AffineCurve> Debug for SubProtocol<'a, E, G>
impl<'a, E: Debug + PairingEngine, G: Debug + AffineCurve> Debug for SubProtocol<'a, E, G>
sourceimpl<'a, E: PartialEq + PairingEngine, G: PartialEq + AffineCurve> PartialEq<SubProtocol<'a, E, G>> for SubProtocol<'a, E, G>
impl<'a, E: PartialEq + PairingEngine, G: PartialEq + AffineCurve> PartialEq<SubProtocol<'a, E, G>> for SubProtocol<'a, E, G>
sourcefn eq(&self, other: &SubProtocol<'a, E, G>) -> bool
fn eq(&self, other: &SubProtocol<'a, E, G>) -> bool
impl<'a, E: PairingEngine, G: AffineCurve> StructuralPartialEq for SubProtocol<'a, E, G>
Auto Trait Implementations
impl<'a, E, G> RefUnwindSafe for SubProtocol<'a, E, G>where
G: RefUnwindSafe,
<E as PairingEngine>::Fqk: RefUnwindSafe,
<E as PairingEngine>::Fr: RefUnwindSafe,
<E as PairingEngine>::G1Affine: RefUnwindSafe,
<E as PairingEngine>::G2Affine: RefUnwindSafe,
<G as AffineCurve>::ScalarField: RefUnwindSafe,
impl<'a, E, G> Send for SubProtocol<'a, E, G>
impl<'a, E, G> Sync for SubProtocol<'a, E, G>
impl<'a, E, G> Unpin for SubProtocol<'a, E, G>where
G: Unpin,
<E as PairingEngine>::Fqk: Unpin,
<E as PairingEngine>::Fr: Unpin,
<E as PairingEngine>::G1Affine: Unpin,
<E as PairingEngine>::G2Affine: Unpin,
<G as AffineCurve>::ScalarField: Unpin,
impl<'a, E, G> UnwindSafe for SubProtocol<'a, E, G>where
G: UnwindSafe + RefUnwindSafe,
<E as PairingEngine>::Fqk: UnwindSafe,
<E as PairingEngine>::Fr: UnwindSafe + RefUnwindSafe,
<E as PairingEngine>::G1Affine: UnwindSafe + RefUnwindSafe,
<E as PairingEngine>::G2Affine: UnwindSafe + RefUnwindSafe,
<G as AffineCurve>::ScalarField: UnwindSafe,
Blanket Implementations
impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
fn pointer_metadata(
&<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
fn pointer_metadata(
&<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere
W: DeserializeWith<F, T, D>,
D: Fallible + ?Sized,
F: ?Sized,
impl<F, W, T, D> Deserialize<With<T, W>, D> for Fwhere
W: DeserializeWith<F, T, D>,
D: Fallible + ?Sized,
F: ?Sized,
fn deserialize(
&self,
deserializer: &mut D
) -> Result<With<T, W>, <D as Fallible>::Error>
fn deserialize(
&self,
deserializer: &mut D
) -> Result<With<T, W>, <D as Fallible>::Error>
Deserializes using the given deserializer
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Upcastable for Twhere
T: 'static + Any + Send + Sync,
impl<T> Upcastable for Twhere
T: 'static + Any + Send + Sync,
fn upcast_any_ref(&self) -> &(dyn Any + 'static)
fn upcast_any_ref(&self) -> &(dyn Any + 'static)
upcast ref
fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn upcast_any_mut(&mut self) -> &mut (dyn Any + 'static)
upcast mut ref