arnaucube
arnaucube/sonobePublic Self-hosted repository
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    fn get_challenges(&mut self, n: usize) -> Vec<C::ScalarField>;
15}