binius_transcript/fiat_shamir/mod.rs
1// Copyright 2024-2025 Irreducible Inc.
2
3mod buffer;
4mod hasher_challenger;
5mod sampling;
6
7pub use buffer::*;
8use bytes::{Buf, BufMut};
9pub use hasher_challenger::HasherChallenger;
10pub use sampling::*;
11
12/// A Fiat-Shamir challenger that can observe prover messages and sample verifier randomness.
13pub trait Challenger {
14 /// Returns an infinite buffer for reading pseudo-random bytes.
15 fn sampler(&mut self) -> &mut impl Buf;
16
17 /// Returns and infinite buffer for writing data that the challenger observes.
18 fn observer(&mut self) -> &mut impl BufMut;
19}