From aaaa5e8574d07a23929a7a3d3542fd2678f515ea Mon Sep 17 00:00:00 2001 From: th4s Date: Tue, 16 Jan 2024 15:18:45 +0100 Subject: [PATCH] Add test for KOS15 RandomOT --- ot/mpz-ot/src/kos/mod.rs | 42 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/ot/mpz-ot/src/kos/mod.rs b/ot/mpz-ot/src/kos/mod.rs index c9ffb8b1..e6c92b23 100644 --- a/ot/mpz-ot/src/kos/mod.rs +++ b/ot/mpz-ot/src/kos/mod.rs @@ -53,7 +53,7 @@ mod tests { use crate::{ mock::{mock_ot_pair, MockOTReceiver, MockOTSender}, - OTReceiver, OTSender, OTSetup, VerifiableOTReceiver, + OTReceiver, OTSender, OTSetup, RandomOTReceiver, RandomOTSender, VerifiableOTReceiver, }; #[fixture] @@ -146,6 +146,46 @@ mod tests { assert_eq!(received, expected); } + #[tokio::test] + async fn test_kos_random() { + let (sender_channel, receiver_channel) = MemoryDuplex::new(); + + let (mut sender_sink, mut sender_stream) = sender_channel.split(); + let (mut receiver_sink, mut receiver_stream) = receiver_channel.split(); + + let (mut sender, mut receiver) = setup( + SenderConfig::default(), + ReceiverConfig::default(), + &mut sender_sink, + &mut sender_stream, + &mut receiver_sink, + &mut receiver_stream, + 10, + ) + .await; + + let (sender_res, receiver_res) = tokio::join!( + RandomOTSender::send_random(&mut sender, &mut sender_sink, &mut sender_stream, 10), + RandomOTReceiver::receive_random( + &mut receiver, + &mut receiver_sink, + &mut receiver_stream, + 10 + ) + ); + + let sender_output: Vec<[Block; 2]> = sender_res.unwrap(); + let (choices, receiver_output): (Vec, Vec) = receiver_res.unwrap(); + + let expected = sender_output + .into_iter() + .zip(choices) + .map(|(output, choice)| output[choice as usize]) + .collect::>(); + + assert_eq!(receiver_output, expected); + } + #[rstest] #[tokio::test] async fn test_kos_bytes(data: Vec<[Block; 2]>, choices: Vec) {