Struct sigma_fun::HashTranscript
source · pub struct HashTranscript<H, R = ()> { /* private fields */ }Expand description
A transcript which consists of a hash with fixed length output and a seedable RNG.
The SeedableRng specified must have the same seed length as the hash’s output length.
R may be set to () but the it won’t implement ProverTranscript.
Trait Implementations§
source§impl<H: Clone, R: Clone> Clone for HashTranscript<H, R>
impl<H: Clone, R: Clone> Clone for HashTranscript<H, R>
source§fn clone(&self) -> HashTranscript<H, R>
fn clone(&self) -> HashTranscript<H, R>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moresource§impl<H: Default, R> Default for HashTranscript<H, R>
impl<H: Default, R> Default for HashTranscript<H, R>
source§impl<S, H, R> ProverTranscript<S> for HashTranscript<H, R>where
S: Sigma,
H: Update + FixedOutput<OutputSize = U32> + Clone,
R: SeedableRng + CryptoRng + RngCore + Clone,
R::Seed: From<GenericArray<u8, U32>>,
impl<S, H, R> ProverTranscript<S> for HashTranscript<H, R>where
S: Sigma,
H: Update + FixedOutput<OutputSize = U32> + Clone,
R: SeedableRng + CryptoRng + RngCore + Clone,
R::Seed: From<GenericArray<u8, U32>>,
Implements a prover transcript for a 32-byte hash with a rng that takes a 32-byte seed.
source§impl<H, S: Sigma, R: Clone> Transcript<S> for HashTranscript<H, R>where
S::ChallengeLength: IsLessOrEqual<U32>,
<S::ChallengeLength as IsLessOrEqual<U32>>::Output: NonZero,
H: BlockSizeUser<BlockSize = U64> + FixedOutput<OutputSize = U32> + Update + Default + Clone,
impl<H, S: Sigma, R: Clone> Transcript<S> for HashTranscript<H, R>where
S::ChallengeLength: IsLessOrEqual<U32>,
<S::ChallengeLength as IsLessOrEqual<U32>>::Output: NonZero,
H: BlockSizeUser<BlockSize = U64> + FixedOutput<OutputSize = U32> + Update + Default + Clone,
Implements a transcript for any hash that outputs 32 bytes but with a block size of 64 bytes (e.g. SHA256).
The implementation first BIP-340 tags the SHA256 instance with the Sigma protocol’s name.
source§fn add_name<N: Writable + ?Sized>(&mut self, name: &N)
fn add_name<N: Writable + ?Sized>(&mut self, name: &N)
The name unambigiously determines the semantics of the statement and announcement which
are subsequently added to the transcript. Read more
source§fn add_statement(&mut self, sigma: &S, statement: &S::Statement)
fn add_statement(&mut self, sigma: &S, statement: &S::Statement)
Adds the prover’s statement to the transcript. This must be called before
get_challenge. Read moresource§fn get_challenge(
self,
sigma: &S,
announce: &S::Announcement
) -> GenericArray<u8, S::ChallengeLength>
fn get_challenge(
self,
sigma: &S,
announce: &S::Announcement
) -> GenericArray<u8, S::ChallengeLength>
Gets the verifier’s synthetic challenge for the non-interactive proof.