15 static_cast<T*
>(
this)->send_data_impl(data, nbyte);
18 static_cast<T*
>(
this)->recv_data_impl(data, nbyte);
38 char * tmp =
new char[len];
40 for(
int i = 0; i < len; ++i)
41 tmp[i] ^= ((
char *)data)[i];
49 for(
int i = 0; i < len; ++i)
58 for(
size_t i = 0; i < num; ++i) {
59 bn_size = bn_size_raw(bn[i]);
60 prg->
random_data(buffer2, bn_size*
sizeof(uint64_t));
61 bn_write_raw(buffer, bn_size, bn[i]);
62 for(
size_t k = 0; k < bn_size; ++k)
63 buffer[k]^=buffer2[k];
65 send_data(buffer, bn_size*
sizeof(uint64_t));
71 if(prg ==
nullptr)
return;
72 char * tmp =
new char[len];
74 for(
int i = 0; i < len; ++i)
75 ((
char *)data)[i] ^= tmp[i];
80 if(prg ==
nullptr)
return;
83 for(
int i = 0; i < len; ++i)
90 for(
size_t i = 0; i < num; ++i) {
91 uint32_t eb_size = eb_size_bin(eb[i],
ECC_PACK);
94 eb_write_bin(buffer, eb_size, eb[i],
ECC_PACK);
95 for(
size_t k = 0; k < eb_size; ++k) {
96 buffer[k] = (char)(buffer[k]^buffer2[k]);
98 send_data(buffer, eb_size*
sizeof(uint8_t));
106 for(
size_t i = 0; i < num; ++i) {
108 recv_data(buffer, eb_size*
sizeof(uint8_t));
109 if(prg ==
nullptr)
continue;
111 for(
size_t k = 0; k < eb_size; ++k) {
112 buffer[k] = (char)(buffer[k]^buffer2[k]);
114 eb_read_bin(eb[i], buffer, eb_size);
121 for(
size_t i = 0; i < num; ++i) {
123 recv_data(buffer, bn_size*
sizeof(uint64_t));
124 if(prg ==
nullptr)
continue;
125 prg->
random_data(buffer2,
sizeof(uint64_t)*bn_size);
126 for(
size_t k = 0; k < bn_size; ++k)
127 buffer[k] ^=buffer2[k];
128 bn_read_raw(bn[i], buffer, bn_size);
142 for(
size_t i = 0; i < num; ++i) {
143 int eb_size = eb_size_bin(eb[i],
ECC_PACK);
144 eb_write_bin(buffer, eb_size, eb[i],
ECC_PACK);
146 send_data(buffer, eb_size*
sizeof(uint8_t));
153 for(
size_t i = 0; i < num; ++i) {
155 recv_data(buffer, eb_size*
sizeof(uint8_t));
156 eb_read_bin(eb[i], buffer, eb_size);
163 for(
size_t i = 0; i < num; ++i) {
164 bn_size = bn_size_raw(bn[i]);
165 bn_write_raw(buffer, bn_size, bn[i]);
167 send_data(buffer, bn_size*
sizeof(uint64_t));
174 for(
size_t i = 0; i < num; ++i) {
176 recv_data(buffer, bn_size*
sizeof(uint64_t));
177 bn_read_raw(bn[i], buffer, bn_size);
182 #endif// IO_CHANNEL_H__ void recv_eb_enc(eb_t *eb, size_t num)
Definition: io_channel.h:102
void send_bn(const bn_t *bn, size_t num)
Definition: io_channel.h:160
void send_data(const void *data, int nbyte)
Definition: io_channel.h:14
void send_bn_enc(const bn_t *bn, size_t num)
Definition: io_channel.h:54
void recv_data(void *data, int nbyte)
Definition: io_channel.h:17
__m128i block
Definition: block.h:8
void recv_bn_enc(bn_t *bn, size_t num)
Definition: io_channel.h:117
block xorBlocks(block x, block y)
Definition: block.h:35
#define ECC_PACK
Definition: utils_ec.h:9
void recv_data_enc(void *data, int len)
Definition: io_channel.h:69
void set_key(const block *b)
Definition: io_channel.h:26
void recv_block_enc(block *data, int len)
Definition: io_channel.h:78
void recv_eb(eb_t *eb, size_t num)
Definition: io_channel.h:150
void send_eb(const eb_t *eb, size_t num)
Definition: io_channel.h:140
void random_block(block *data, int nblocks=1)
Definition: prg.h:75
void send_data_enc(const void *data, int len)
Definition: io_channel.h:37
#define EB_SIZE
Definition: utils_ec.h:11
void send_block_enc(const block *data, int len)
Definition: io_channel.h:46
PRG * prg
Definition: io_channel.h:13
void send_eb_enc(const eb_t *eb, size_t num)
Definition: io_channel.h:87
~IOChannel()
Definition: io_channel.h:21
void random_data(void *data, int nbytes)
Definition: prg.h:49
void recv_bn(bn_t *bn, size_t num)
Definition: io_channel.h:171
void send_block(const block *data, int nblock)
Definition: io_channel.h:132
void recv_block(block *data, int nblock)
Definition: io_channel.h:136
Definition: io_channel.h:12