| 184 | use std::time::{Duration, Instant}; |
| 185 | |
| 186 | fn check<G: AffineRepr>( |
| 187 | rng: &mut StdRng, |
| 188 | base: u16, |
| 189 | num_bits: u16, |
| 190 | values_and_bounds: Vec<(u64, u64, u64)>, |
| 191 | gamma: Vec<G::ScalarField>, |
| 192 | setup_params: SetupParams<G>, |
| 193 | ) -> Result<(ProofArbitraryRange<G>, Duration, Duration), BulletproofsPlusPlusError> { |
| 194 | let start = Instant::now(); |
| 195 | let mut transcript = new_merlin_transcript(b"BPP/tests"); |
| 196 | transcript.append(b"setup", &setup_params); |
| 197 | let proof = ProofArbitraryRange::new_with_given_base( |
| 198 | rng, |
| 199 | base, |
| 200 | num_bits, |
| 201 | values_and_bounds, |
| 202 | gamma, |
| 203 | setup_params.clone(), |
| 204 | &mut transcript, |
| 205 | )?; |
| 206 | let proving_time = start.elapsed(); |
| 207 | |
| 208 | let start = Instant::now(); |
| 209 | let mut transcript = new_merlin_transcript(b"BPP/tests"); |
| 210 | transcript.append(b"setup", &setup_params); |
| 211 | proof.verify(num_bits, &setup_params, &mut transcript)?; |
| 212 | let verifying_time = start.elapsed(); |
| 213 | Ok((proof, proving_time, verifying_time)) |
| 214 | } |
| 215 | |
| 216 | fn test_rangeproof_for_arbitrary_range<G: AffineRepr>( |
| 217 | base: u16, |