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::(); }