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