@@ -16,13 +16,14 @@ use std::ops::Mul;
1616
1717use challenges:: { calculate_first_challenge_hash, calculate_second_challenge_hash} ;
1818use polynomial:: { calculate_polynomial_val, generate_polynomial, Polynomial } ;
19- use rand_core:: CryptoRngCore ;
2019use randomness_announcements:: { Announcement , BlindingRandomness , ResponseRandomness } ;
20+ use rayon:: iter:: { IndexedParallelIterator , IntoParallelRefIterator , ParallelIterator } ;
2121use utils:: get_bit;
2222
2323use crate :: crypto:: {
2424 elgamal:: { encrypt, Ciphertext } ,
2525 group:: { GroupElement , Scalar } ,
26+ rng:: rand_core:: CryptoRngCore ,
2627} ;
2728
2829/// Unit vector proof struct
@@ -67,7 +68,7 @@ pub fn generate_unit_vector_proof<R: CryptoRngCore>(
6768 . collect ( ) ;
6869
6970 let announcements: Vec < _ > = blinding_randomness
70- . iter ( )
71+ . par_iter ( )
7172 . enumerate ( )
7273 . map ( |( l, r) | {
7374 let i_bit = get_bit ( i, l) ;
@@ -110,7 +111,7 @@ fn generate_dl_and_rl<R: CryptoRngCore>(
110111 let r_l: Vec < _ > = ( 0 ..log_n) . map ( |_| Scalar :: random ( rng) ) . collect ( ) ;
111112
112113 let d_l: Vec < _ > = r_l
113- . iter ( )
114+ . par_iter ( )
114115 . enumerate ( )
115116 . map ( |( l, r_l) | {
116117 let ( sum, _) = polynomials. iter ( ) . fold (
@@ -234,16 +235,14 @@ fn check_2(
234235 & right_1 + & right_2 == left
235236}
236237
237- #[ cfg ( test ) ]
238- mod tests {
238+ #[ allow ( missing_docs , clippy :: missing_docs_in_private_items ) ]
239+ mod arbitrary_impl {
239240 use proptest:: {
240241 prelude:: { any_with, Arbitrary , BoxedStrategy , Strategy } ,
241242 sample:: size_range,
242243 } ;
243- use rand_core:: OsRng ;
244- use test_strategy:: proptest;
245244
246- use super :: { super :: elgamal :: generate_public_key , * } ;
245+ use super :: { Announcement , Ciphertext , ResponseRandomness , Scalar , UnitVectorProof } ;
247246
248247 impl Arbitrary for UnitVectorProof {
249248 type Parameters = usize ;
@@ -262,6 +261,15 @@ mod tests {
262261 . boxed ( )
263262 }
264263 }
264+ }
265+
266+ #[ cfg( test) ]
267+ mod tests {
268+ use proptest:: sample:: size_range;
269+ use rand_core:: OsRng ;
270+ use test_strategy:: proptest;
271+
272+ use super :: { super :: elgamal:: generate_public_key, * } ;
265273
266274 fn is_unit_vector ( vector : & [ Scalar ] ) -> bool {
267275 let ones = vector. iter ( ) . filter ( |s| s == & & Scalar :: one ( ) ) . count ( ) ;
0 commit comments