w3f_pcs/aggregation/
merlin.rs1use ark_ff::PrimeField;
2use ark_serialize::{CanonicalSerialize, Compress};
3use ark_std::vec;
4
5use crate::aggregation::multiple::Transcript;
6use crate::pcs::PCS;
7
8impl<F: PrimeField, CS: PCS<F>> Transcript<F, CS> for merlin::Transcript {
9 fn get_gamma(&mut self) -> F {
10 let mut buf = [0u8; 16];
11 self.challenge_bytes(b"gamma", &mut buf);
12 F::from_random_bytes(&buf).unwrap()
13 }
14
15 fn commit_to_q(&mut self, q: &CS::C) {
16 let mut buf = vec![0; q.serialized_size(Compress::No)];
17 q.serialize_uncompressed(&mut buf).unwrap();
18 self.append_message(b"q", &buf);
19 }
20
21 fn get_zeta(&mut self) -> F {
22 let mut buf = [0u8; 16];
23 self.challenge_bytes(b"zeta", &mut buf);
24 F::from_random_bytes(&buf).unwrap()
25 }
26}