| 406 | use std::time::{Duration, Instant}; |
| 407 | |
| 408 | pub fn sig_setup<R: RngCore>( |
| 409 | rng: &mut R, |
| 410 | message_count: u32, |
| 411 | ) -> ( |
| 412 | Vec<Fr>, |
| 413 | SignatureParams23G1<Bls12_381>, |
| 414 | KeypairG2<Bls12_381>, |
| 415 | Signature23G1<Bls12_381>, |
| 416 | ) { |
| 417 | let messages: Vec<Fr> = (0..message_count).map(|_| Fr::rand(rng)).collect(); |
| 418 | let params = SignatureParams23G1::<Bls12_381>::generate_using_rng(rng, message_count); |
| 419 | let keypair = KeypairG2::<Bls12_381>::generate_using_rng_and_bbs23_params(rng, ¶ms); |
| 420 | let sig = |
| 421 | Signature23G1::<Bls12_381>::new(rng, &messages, &keypair.secret_key, ¶ms).unwrap(); |
| 422 | (messages, params, keypair, sig) |
| 423 | } |
| 424 | |
| 425 | #[test] |
| 426 | fn pok_signature_revealed_message() { |