Trait Transcript

Source
pub trait Transcript<C, L>
where C: CurveAffine, L: Loader<C>,
{ // Required methods fn loader(&self) -> &L; fn squeeze_challenge(&mut self) -> L::LoadedScalar; fn common_ec_point( &mut self, ec_point: &L::LoadedEcPoint, ) -> Result<(), Error>; fn common_scalar(&mut self, scalar: &L::LoadedScalar) -> Result<(), Error>; // Provided method fn squeeze_n_challenges(&mut self, n: usize) -> Vec<L::LoadedScalar> { ... } }
Expand description

Common methods for prover and verifier.

Required Methods§

Source

fn loader(&self) -> &L

Returns Loader.

Source

fn squeeze_challenge(&mut self) -> L::LoadedScalar

Squeeze a challenge.

Source

fn common_ec_point(&mut self, ec_point: &L::LoadedEcPoint) -> Result<(), Error>

Update with an elliptic curve point.

Source

fn common_scalar(&mut self, scalar: &L::LoadedScalar) -> Result<(), Error>

Update with a scalar.

Provided Methods§

Source

fn squeeze_n_challenges(&mut self, n: usize) -> Vec<L::LoadedScalar>

Squeeze n challenges.

Implementations on Foreign Types§

Source§

impl<C: CurveAffine, R: Read> Transcript<C, NativeLoader> for Blake2bRead<R, C, Challenge255<C>>
where C::Scalar: FromUniformBytes<64>,

Source§

fn loader(&self) -> &NativeLoader

Source§

fn squeeze_challenge(&mut self) -> C::Scalar

Source§

fn common_ec_point(&mut self, ec_point: &C) -> Result<(), Error>

Source§

fn common_scalar(&mut self, scalar: &C::Scalar) -> Result<(), Error>

Source§

impl<C: CurveAffine, W: Write> Transcript<C, NativeLoader> for Blake2bWrite<W, C, Challenge255<C>>
where C::Scalar: FromUniformBytes<64>,

Source§

fn loader(&self) -> &NativeLoader

Source§

fn squeeze_challenge(&mut self) -> C::Scalar

Source§

fn common_ec_point(&mut self, ec_point: &C) -> Result<(), Error>

Source§

fn common_scalar(&mut self, scalar: &C::Scalar) -> Result<(), Error>

Implementors§

Source§

impl<C> Transcript<C, Rc<EvmLoader>> for EvmTranscript<C, Rc<EvmLoader>, usize, MemoryChunk>
where C: CurveAffine, C::Scalar: PrimeField<Repr = [u8; 32]>,

Source§

impl<C, R, EccChip, const T: usize, const RATE: usize, const R_F: usize, const R_P: usize> Transcript<C, Rc<Halo2Loader<C, EccChip>>> for PoseidonTranscript<C, Rc<Halo2Loader<C, EccChip>>, R, T, RATE, R_F, R_P>
where C: CurveAffine, R: Read, EccChip: NativeEncoding<C>,

Source§

impl<C, S> Transcript<C, NativeLoader> for EvmTranscript<C, NativeLoader, S, Vec<u8>>
where C: CurveAffine, C::Scalar: PrimeField<Repr = [u8; 32]>,

Source§

impl<C: CurveAffine, S, const T: usize, const RATE: usize, const R_F: usize, const R_P: usize> Transcript<C, NativeLoader> for PoseidonTranscript<C, NativeLoader, S, T, RATE, R_F, R_P>