use rand_core::OsRng; use group::{ ff::{Field, PrimeFieldBits}, prime::PrimeGroup, }; use multiexp::BatchVerifier; use transcript::{Transcript, RecommendedTranscript}; use crate::cross_group::schnorr::SchnorrPoK; fn test_schnorr() where G::Scalar: PrimeFieldBits, { let private = G::Scalar::random(&mut OsRng); let transcript = RecommendedTranscript::new(b"Schnorr Test"); let mut batch = BatchVerifier::new(3); SchnorrPoK::prove(&mut OsRng, &mut transcript.clone(), G::generator(), private).verify( &mut OsRng, &mut transcript.clone(), G::generator(), G::generator() * private, &mut batch, ); assert!(batch.verify_vartime()); } #[test] fn test_secp256k1() { test_schnorr::(); } #[test] fn test_ed25519() { test_schnorr::(); }