From 2d0e16916be0025b464945cda823229c49f23526 Mon Sep 17 00:00:00 2001 From: sinuio <> Date: Wed, 16 Feb 2022 20:15:55 -0800 Subject: [PATCH] randomize inputs and choice in test --- pop-mpc/src/ot/base.rs | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/pop-mpc/src/ot/base.rs b/pop-mpc/src/ot/base.rs index 00826b947..e687c2995 100644 --- a/pop-mpc/src/ot/base.rs +++ b/pop-mpc/src/ot/base.rs @@ -127,28 +127,36 @@ impl BaseOTReceiver { #[cfg(test)] mod tests { use super::*; - use rand::SeedableRng; + use crate::utils::u8vec_to_boolvec; + use rand::{RngCore, SeedableRng}; use rand_chacha::ChaCha12Rng; #[test] fn test_base_ot() { let mut s_rng = ChaCha12Rng::from_entropy(); let mut r_rng = ChaCha12Rng::from_entropy(); - let mut sender = BaseOTSender::new(&mut s_rng); + let mut rng = ChaCha12Rng::from_entropy(); + let s_inputs: Vec<[Block; 2]> = (0..128) + .map(|i| [Block::random(&mut rng), Block::random(&mut rng)]) + .collect(); + let mut choice = vec![0u8; 16]; + rng.fill_bytes(&mut choice); + let choice = u8vec_to_boolvec(&choice); + let expected: Vec = s_inputs + .iter() + .zip(choice.iter()) + .map(|(input, choice)| input[*choice as usize]) + .collect(); + + let mut sender = BaseOTSender::new(&mut s_rng); let sender_setup = sender.setup(); - let s_inputs = [ - [Block::new(0), Block::new(1)], - [Block::new(2), Block::new(3)], - ]; let mut receiver = BaseOTReceiver::new(sender_setup); - let choice = [false, true]; - let receiver_setup = receiver.setup(&mut r_rng, &choice); let send = sender.send(&s_inputs, receiver_setup); let receive = receiver.receive(&choice, send); - assert_eq!(receive.values, [Block::new(0), Block::new(3)]); + assert_eq!(expected, receive.values); } }