From f25bd880300c28e24f3ddd52bd84d916d555f1d2 Mon Sep 17 00:00:00 2001 From: Luke Parker Date: Sun, 24 Jul 2022 09:00:55 -0400 Subject: [PATCH] Test bulletproof creation and verification --- coins/monero/src/tests/bulletproofs.rs | 21 +++++++++++++++++++++ coins/monero/src/tests/mod.rs | 1 + 2 files changed, 22 insertions(+) create mode 100644 coins/monero/src/tests/bulletproofs.rs diff --git a/coins/monero/src/tests/bulletproofs.rs b/coins/monero/src/tests/bulletproofs.rs new file mode 100644 index 00000000..98ae1546 --- /dev/null +++ b/coins/monero/src/tests/bulletproofs.rs @@ -0,0 +1,21 @@ +use rand::rngs::OsRng; + +use crate::{Commitment, random_scalar, ringct::bulletproofs::Bulletproofs}; + +#[test] +fn bulletproofs() { + // Create Bulletproofs for all possible output quantities + for i in 1 .. 17 { + let commitments = + (1 ..= i).map(|i| Commitment::new(random_scalar(&mut OsRng), i)).collect::>(); + + assert!(Bulletproofs::new(&mut OsRng, &commitments) + .unwrap() + .verify(&mut OsRng, &commitments.iter().map(Commitment::calculate).collect::>())); + } + + // Check it errors if we try to create too many + assert!( + Bulletproofs::new(&mut OsRng, &[Commitment::new(random_scalar(&mut OsRng), 1); 17]).is_err() + ); +} diff --git a/coins/monero/src/tests/mod.rs b/coins/monero/src/tests/mod.rs index 0ef934c8..5af30bad 100644 --- a/coins/monero/src/tests/mod.rs +++ b/coins/monero/src/tests/mod.rs @@ -1,3 +1,4 @@ mod hash_to_point; mod clsag; +mod bulletproofs; mod address;