Skip to content

Commit

Permalink
Add test for KOS15 RandomOT
Browse files Browse the repository at this point in the history
  • Loading branch information
th4s committed Jan 16, 2024
1 parent baab8ea commit aaaa5e8
Showing 1 changed file with 41 additions and 1 deletion.
42 changes: 41 additions & 1 deletion ot/mpz-ot/src/kos/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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]
Expand Down Expand Up @@ -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<bool>, Vec<Block>) = receiver_res.unwrap();

let expected = sender_output
.into_iter()
.zip(choices)
.map(|(output, choice)| output[choice as usize])
.collect::<Vec<_>>();

assert_eq!(receiver_output, expected);
}

#[rstest]
#[tokio::test]
async fn test_kos_bytes(data: Vec<[Block; 2]>, choices: Vec<bool>) {
Expand Down

0 comments on commit aaaa5e8

Please sign in to comment.