1 #ifndef OT_ITERATED_H__ 2 #define OT_ITERATED_H__ 8 template<
typename OTExtension>
17 seed_ot =
new OTExtension(io);
18 ot =
new OTExtension(io);
36 ot->setup_send(k0, sel);
38 ot->send_rot(k0,
k1, seed_ot->l);
39 seed_ot->setup_recv(k0,
k1);
41 seed_ot->recv_rot(k0, sel, buffer_size);
44 ot->setup_recv(k0 ,
k1);
46 ot->recv_rot(k0, sel, seed_ot->l);
47 seed_ot->setup_send(k0, sel);
48 seed_ot->send_rot(k0,
k1, buffer_size);
53 if(size + ot->l > buffer_size)
55 ot->setup_send(k0+size, sel+size);
56 ot->send(data0, data1, length);
60 if(size + ot->l > buffer_size)
62 ot->setup_recv(k0+size,
k1+size);
63 ot->recv(data, b, length);
67 if(size + ot->l > buffer_size)
70 ot->setup_send(k0+size, sel+size);
71 ot->send_cot(data0, delta, length);
75 if(size + ot->l > buffer_size)
77 ot->setup_recv(k0+size,
k1+size);
78 ot->recv_cot(data, b, length);
82 if(size + ot->l > buffer_size)
84 ot->setup_send(k0+size, sel+size);
85 ot->send_rot(data0, data1, length);
89 if(size + ot->l > buffer_size)
91 ot->setup_recv(k0+size,
k1+size);
92 ot->recv_rot(data, b, length);
99 #endif// OT_ITERATED_H__ void recv_impl(block *data, const bool *b, int length)
Definition: iterated.h:59
void random_bool(bool *data, int length)
Definition: prg.h:57
block * k1
Definition: iterated.h:12
void fill()
Definition: iterated.h:33
__m128i block
Definition: block.h:8
OTIterated< MOTExtension > MOTIterated
Definition: iterated.h:97
void send_cot(block *data0, block delta, int length)
Definition: iterated.h:66
int buffer_size
Definition: iterated.h:14
Definition: net_io_channel.h:22
OTIterated(NetIO *io, bool is_sender, int buffer_size=1<< 10)
Definition: iterated.h:16
~OTIterated()
Definition: iterated.h:26
OTIterated< SHOTExtension > SHOTIterated
Definition: iterated.h:96
OTExtension * seed_ot
Definition: iterated.h:10
bool * sel
Definition: iterated.h:13
void recv_rot(block *data, const bool *b, int length)
Definition: iterated.h:88
void send_impl(const block *data0, const block *data1, int length)
Definition: iterated.h:52
NetIO * io
Definition: ot.h:9
PRG prg
Definition: iterated.h:15
bool is_sender
Definition: iterated.h:13
void send_rot(block *data0, block *data1, int length)
Definition: iterated.h:81
OTExtension * ot
Definition: iterated.h:11
block * k0
Definition: iterated.h:12
int size
Definition: iterated.h:14
void recv_cot(block *data, const bool *b, int length)
Definition: iterated.h:74