sonobe/src/transcript/mod.rs
src/transcript/mod.rsRaw
1use crate::Error;
2use ark_ec::CurveGroup;
3use ark_std::fmt::Debug;
4
5pub mod poseidon;
6
7pub trait Transcript<C: CurveGroup> {
8 type TranscriptConfig: Debug;
9
10 fn new(config: &Self::TranscriptConfig) -> Self;
11 fn absorb(&mut self, v: &C::ScalarField);
12 fn absorb_vec(&mut self, v: &[C::ScalarField]);
13 fn absorb_point(&mut self, v: &C) -> Result<(), Error>;
14 fn get_challenge(&mut self) -> C::ScalarField;
15 /// get_challenge_nbits returns a field element of size nbits
16 fn get_challenge_nbits(&mut self, nbits: usize) -> Vec<bool>;
17 fn get_challenges(&mut self, n: usize) -> Vec<C::ScalarField>;
18}