|
@@ -9,12 +9,10 @@ size_t duoram_progress[step::num_steps] = { 0 };
|
|
|
|
|
|
|
|
|
|
|
|
-// const size_t expo = 5;
|
|
|
-// const size_t db_nitems = 1ULL << expo;
|
|
|
const size_t number_of_writes = 2;
|
|
|
|
|
|
|
|
|
-// const size_t number_of_ind_reads = 5;
|
|
|
+
|
|
|
|
|
|
typedef int64_t DB_t;
|
|
|
|
|
@@ -51,7 +49,7 @@ DB_t * b;
|
|
|
DB_t * c;
|
|
|
DB_t * d;
|
|
|
|
|
|
-DB_t one_shareA, one_shareB, one_shareC;
|
|
|
+
|
|
|
|
|
|
|
|
|
int8_t * reading_b;
|
|
@@ -62,130 +60,7 @@ int8_t * writing_b;
|
|
|
int8_t * writing_c;
|
|
|
int8_t * writing_d;
|
|
|
|
|
|
-void generate_flags_and_standard_basis_vectors2(bool party, size_t db_nitems)
|
|
|
-{
|
|
|
- for(size_t j = 0; j < db_nitems; ++j)
|
|
|
- {
|
|
|
- reading_b[j] = 0;
|
|
|
- reading_c[j] = 0;
|
|
|
- reading_d[j] = 0;
|
|
|
-
|
|
|
- if(j > 5 && j < 42)
|
|
|
- {
|
|
|
- reading_b[j] = 1;
|
|
|
- reading_c[j] = 1;
|
|
|
- reading_d[j] = 1;
|
|
|
- }
|
|
|
-
|
|
|
- if(j > 75 && (j % 3) == 0)
|
|
|
- {
|
|
|
- reading_b[j] = 1;
|
|
|
- reading_c[j] = 1;
|
|
|
- reading_d[j] = 1;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if(party)
|
|
|
- {
|
|
|
- reading_b[target_index] = 1;
|
|
|
- reading_c[target_index] = 1;
|
|
|
- reading_d[target_index] = 1;
|
|
|
- }
|
|
|
-
|
|
|
- if(!party)
|
|
|
- {
|
|
|
- for(size_t j = 0; j < db_nitems; ++j)
|
|
|
- {
|
|
|
- reading_b[j] = -reading_b[j];
|
|
|
- reading_c[j] = -reading_c[j];
|
|
|
- reading_d[j] = -reading_d[j];
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- for(size_t j = 0; j < db_nitems; ++j)
|
|
|
- {
|
|
|
- b[j] = j;
|
|
|
- c[j] = j;
|
|
|
- d[j] = j;
|
|
|
-
|
|
|
- writing_b[j] = 0;
|
|
|
- writing_c[j] = 0;
|
|
|
- writing_d[j] = 0;
|
|
|
-
|
|
|
- if(j > 5 && j < 42)
|
|
|
- {
|
|
|
- writing_b[j] = 1;
|
|
|
- writing_c[j] = 1;
|
|
|
- writing_d[j] = 1;
|
|
|
- }
|
|
|
-
|
|
|
- if(j > 75 && (j % 3) == 0)
|
|
|
- {
|
|
|
- writing_b[j] = 1;
|
|
|
- writing_c[j] = 1;
|
|
|
- writing_d[j] = 1;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
|
|
|
-
|
|
|
- if(party)
|
|
|
- {
|
|
|
- writing_b[target_index] = 1;
|
|
|
- writing_c[target_index] = 1;
|
|
|
- writing_d[target_index] = 1;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- if(party)
|
|
|
- {
|
|
|
- // printf("PARTY 1\n");
|
|
|
- // for(size_t j = 0; j < db_nitems; ++j)
|
|
|
- // {
|
|
|
- // if(writing_b[j]) pm0 += 1;
|
|
|
- // if(writing_c[j]) pm1 += 1;
|
|
|
- // if(writing_d[j]) pm2 += 1;
|
|
|
- // }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- // printf("PARTY 0\n");
|
|
|
- // for(size_t j = 0; j < db_nitems; ++j)
|
|
|
- // {
|
|
|
- // if(writing_b[j]) pm0 -= 1;
|
|
|
- // if(writing_c[j]) pm1 -= 1;
|
|
|
- // if(writing_d[j]) pm2 -= 1;
|
|
|
- // }
|
|
|
-
|
|
|
- for(size_t j = 0; j < db_nitems; ++j)
|
|
|
- {
|
|
|
- writing_b[j] = -writing_b[j];
|
|
|
- writing_c[j] = -writing_c[j];
|
|
|
- writing_d[j] = -writing_d[j];
|
|
|
-
|
|
|
- b[j] = -b[j];
|
|
|
- c[j] = -c[j];
|
|
|
- d[j] = -d[j];
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if(party)
|
|
|
- {
|
|
|
- b[target_index] = -47920;
|
|
|
- c[target_index] = -47920;
|
|
|
- d[target_index] = -47920;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- b[target_index] = 0;
|
|
|
- c[target_index] = 0;
|
|
|
- d[target_index] = 0;
|
|
|
- }
|
|
|
-}
|
|
|
void setup(DB_t * DB, DB_t * updated_DB, DB_t * blinded_DB_recv, DB_t * blinds, DB_t * updated_blinds, DB_t * updated_blinded_DB_recv, size_t db_nitems, bool party)
|
|
|
{
|
|
|
for(size_t j = 0; j < db_nitems; ++j)
|
|
@@ -253,430 +128,35 @@ DB_t print_reconstruction(tcp::socket& sb, DB_t output)
|
|
|
|
|
|
int read_database_shares(bool party, size_t db_nitems)
|
|
|
{
|
|
|
- if(party)
|
|
|
- {
|
|
|
- int const in { open( "DB1", O_RDONLY ) };
|
|
|
- size_t r = read(in, DB, db_nitems * sizeof(DB_t));
|
|
|
-
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in);
|
|
|
- return 1;
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- if(!party)
|
|
|
- {
|
|
|
- int const in { open( "DB0", O_RDONLY ) };
|
|
|
- size_t r = read(in, DB, db_nitems * sizeof(DB_t));
|
|
|
-
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- }
|
|
|
+ if(party)
|
|
|
+ {
|
|
|
+ int const in { open( "DB1", O_RDONLY ) };
|
|
|
+ size_t r = read(in, DB, db_nitems * sizeof(DB_t));
|
|
|
+
|
|
|
+ if(r < 0) {
|
|
|
+ perror("Read error");
|
|
|
+ close(in);
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
|
|
|
+ }
|
|
|
+ if(!party)
|
|
|
+ {
|
|
|
+ int const in { open( "DB0", O_RDONLY ) };
|
|
|
+ size_t r = read(in, DB, db_nitems * sizeof(DB_t));
|
|
|
+
|
|
|
+ if(r < 0) {
|
|
|
+ perror("Read error");
|
|
|
+ close(in);
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-int read_flags(bool party, size_t db_nitems)
|
|
|
-{
|
|
|
- if(!party)
|
|
|
- {
|
|
|
- int const in0 { open( "party0_read_flags_b", O_RDONLY ) };
|
|
|
- size_t r = read(in0, reading_b, db_nitems * sizeof(reading_b[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in0);
|
|
|
- return 1;
|
|
|
- }
|
|
|
-
|
|
|
- int const in1 { open( "party0_read_flags_c", O_RDONLY ) };
|
|
|
- r = read(in1, reading_c, db_nitems * sizeof(reading_c[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in1);
|
|
|
- return 1;
|
|
|
- }
|
|
|
-
|
|
|
- int const in2 { open( "party0_read_flags_d", O_RDONLY ) };
|
|
|
- r = read(in2, reading_d, db_nitems * sizeof(reading_d[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in2);
|
|
|
- return 1;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- int const in0_w { open( "party0_write_flags_b", O_RDONLY ) };
|
|
|
- r = read(in0_w, writing_b, db_nitems * sizeof(writing_b[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in0_w);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- int const in1_w { open( "party0_write_flags_c", O_RDONLY ) };
|
|
|
- r = read(in1_w, writing_c, db_nitems * sizeof(writing_c[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in1_w);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- int const in2_w { open( "party0_write_flags_d", O_RDONLY ) };
|
|
|
- r = read(in2_w, writing_d, db_nitems * sizeof(writing_d[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in2_w);
|
|
|
- return 1;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- int const in0_w_ { open( "party0_write_b", O_RDONLY ) };
|
|
|
- r = read(in0_w_, b, db_nitems * sizeof(b[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in0_w_);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- int const in1_w_ { open( "party0_write_c", O_RDONLY ) };
|
|
|
- r = read(in1_w_, c, db_nitems * sizeof(c[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in1_w_);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- int const in2_w_ { open( "party0_write_d", O_RDONLY ) };
|
|
|
- r = read(in2_w_, d, db_nitems * sizeof(d[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in2_w_);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if(party)
|
|
|
- {
|
|
|
- int const in0 { open( "party1_read_flags_b", O_RDONLY ) };
|
|
|
- size_t r = read(in0, reading_b, db_nitems * sizeof(reading_b[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in0);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- int const in1 { open( "party1_read_flags_c", O_RDONLY ) };
|
|
|
- r = read(in1, reading_c, db_nitems * sizeof(reading_c[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in1);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- int const in2 { open( "party1_read_flags_d", O_RDONLY ) };
|
|
|
- r = read(in2, reading_d, db_nitems * sizeof(reading_d[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in2);
|
|
|
- return 1;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- int const in0_w { open( "party1_write_flags_b", O_RDONLY ) };
|
|
|
- r = read(in0_w, writing_b, db_nitems * sizeof(writing_b[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in0_w);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- int const in1_w { open( "party1_write_flags_c", O_RDONLY ) };
|
|
|
- r = read(in1_w, writing_c, db_nitems * sizeof(writing_c[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in1_w);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- int const in2_w { open( "party1_write_flags_d", O_RDONLY ) };
|
|
|
- r = read(in2_w, writing_d, db_nitems * sizeof(writing_d[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in2_w);
|
|
|
- return 1;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- int const in0_w_ { open( "party1_write_b", O_RDONLY ) };
|
|
|
- r = read(in0_w_, b, db_nitems * sizeof(b[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in0_w);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- int const in1_w_ { open( "party1_write_c", O_RDONLY ) };
|
|
|
- r = read(in1_w_, c, db_nitems * sizeof(c[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in1_w);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- int const in2_w_ { open( "party1_write_d", O_RDONLY ) };
|
|
|
- r = read(in2_w_, d, db_nitems * sizeof(d[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in2_w);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-int read_flags_for_reading(bool party, size_t db_nitems)
|
|
|
-{
|
|
|
- if(!party)
|
|
|
- {
|
|
|
- int const in0 { open( "party0_read_flags_b", O_RDONLY ) };
|
|
|
- size_t r = read(in0, reading_b, db_nitems * sizeof(reading_b[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in0);
|
|
|
- return 1;
|
|
|
- }
|
|
|
-
|
|
|
- int const in1 { open( "party0_read_flags_c", O_RDONLY ) };
|
|
|
- r = read(in1, reading_c, db_nitems * sizeof(reading_c[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in1);
|
|
|
- return 1;
|
|
|
- }
|
|
|
-
|
|
|
- int const in2 { open( "party0_read_flags_d", O_RDONLY ) };
|
|
|
- r = read(in2, reading_d, db_nitems * sizeof(reading_d[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in2);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if(party)
|
|
|
- {
|
|
|
- int const in0 { open( "party1_read_flags_b", O_RDONLY ) };
|
|
|
- size_t r = read(in0, reading_b, db_nitems * sizeof(reading_b[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in0);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- int const in1 { open( "party1_read_flags_c", O_RDONLY ) };
|
|
|
- r = read(in1, reading_c, db_nitems * sizeof(reading_c[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in1);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- int const in2 { open( "party1_read_flags_d", O_RDONLY ) };
|
|
|
- r = read(in2, reading_d, db_nitems * sizeof(reading_d[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in2);
|
|
|
- return 1;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-int read_flags_for_writing(bool party, size_t db_nitems)
|
|
|
-{
|
|
|
- if(!party)
|
|
|
- {
|
|
|
-
|
|
|
- int const in0_w { open( "party0_write_flags_b", O_RDONLY ) };
|
|
|
- size_t r = read(in0_w, writing_b, db_nitems * sizeof(writing_b[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in0_w);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- int const in1_w { open( "party0_write_flags_c", O_RDONLY ) };
|
|
|
- r = read(in1_w, writing_c, db_nitems * sizeof(writing_c[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in1_w);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- int const in2_w { open( "party0_write_flags_d", O_RDONLY ) };
|
|
|
- r = read(in2_w, writing_d, db_nitems * sizeof(writing_d[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in2_w);
|
|
|
- return 1;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- if(party)
|
|
|
- {
|
|
|
- int const in0_w { open( "party1_write_flags_b", O_RDONLY ) };
|
|
|
- size_t r = read(in0_w, writing_b, db_nitems * sizeof(writing_b[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in0_w);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- int const in1_w { open( "party1_write_flags_c", O_RDONLY ) };
|
|
|
- r = read(in1_w, writing_c, db_nitems * sizeof(writing_c[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in1_w);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- int const in2_w { open( "party1_write_flags_d", O_RDONLY ) };
|
|
|
- r = read(in2_w, writing_d, db_nitems * sizeof(writing_d[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in2_w);
|
|
|
- return 1;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
-int read_flags_for_updating(bool party, size_t db_nitems)
|
|
|
-{
|
|
|
- if(!party)
|
|
|
- {
|
|
|
- int const in0_w_ { open( "party0_write_b", O_RDONLY ) };
|
|
|
- size_t r = read(in0_w_, b, db_nitems * sizeof(b[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in0_w_);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- int const in1_w_ { open( "party0_write_c", O_RDONLY ) };
|
|
|
- r = read(in1_w_, c, db_nitems * sizeof(c[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in1_w_);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- int const in2_w_ { open( "party0_write_d", O_RDONLY ) };
|
|
|
- r = read(in2_w_, d, db_nitems * sizeof(d[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in2_w_);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if(party)
|
|
|
- {
|
|
|
- int const in0_w_ { open( "party1_write_b", O_RDONLY ) };
|
|
|
- size_t r = read(in0_w_, b, db_nitems * sizeof(b[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in0_w_);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- int const in1_w_ { open( "party1_write_c", O_RDONLY ) };
|
|
|
- r = read(in1_w_, c, db_nitems * sizeof(c[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in1_w_);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- int const in2_w_ { open( "party1_write_d", O_RDONLY ) };
|
|
|
- r = read(in2_w_, d, db_nitems * sizeof(d[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in2_w_);
|
|
|
- return 1;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
- int read_flags_for_refreshing(size_t db_nitems)
|
|
|
- {
|
|
|
- int const in1_w { open( "party0_write_flags_c", O_RDONLY ) };
|
|
|
- size_t r = read(in1_w, writing_c, db_nitems * sizeof(writing_c[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in1_w);
|
|
|
- return 1;
|
|
|
- }
|
|
|
-
|
|
|
- int const in2_w { open( "party1_write_flags_d", O_RDONLY ) };
|
|
|
- r = read(in2_w, writing_d, db_nitems * sizeof(writing_d[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in2_w);
|
|
|
- return 1;
|
|
|
- }
|
|
|
-
|
|
|
- int const in1_w_ { open( "party0_write_c", O_RDONLY ) };
|
|
|
- r = read(in1_w_, c, db_nitems * sizeof(c[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in1_w_);
|
|
|
- return 1;
|
|
|
- }
|
|
|
-
|
|
|
- int const in2_w_ { open( "party1_write_d", O_RDONLY ) };
|
|
|
- r = read(in2_w_, d, db_nitems * sizeof(d[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in2_w_);
|
|
|
- return 1;
|
|
|
- }
|
|
|
-
|
|
|
- return 0;
|
|
|
- }
|
|
|
-
|
|
|
-int read_flags_for_generating_cancellation_terms(size_t db_nitems)
|
|
|
-{
|
|
|
- int const in2 { open( "party1_read_flags_d", O_RDONLY ) };
|
|
|
- size_t r = read(in2, reading_d, db_nitems * sizeof(reading_d[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in2);
|
|
|
- return 1;
|
|
|
- }
|
|
|
-
|
|
|
- int const in2_ { open( "party0_read_flags_c", O_RDONLY ) };
|
|
|
- r = read(in2_, reading_c, db_nitems * sizeof(reading_c[0]));
|
|
|
- if(r < 0) {
|
|
|
- perror("Read error");
|
|
|
- close(in2_);
|
|
|
- return 1;
|
|
|
- }
|
|
|
-
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
void generate_random_distinguished_points(bool party)
|
|
|
{
|
|
|
if(party)
|
|
@@ -696,22 +176,22 @@ void generate_random_distinguished_points(bool party)
|
|
|
}
|
|
|
|
|
|
|
|
|
+/* This function is never called*/
|
|
|
+template<typename T1>
|
|
|
+void rotate_all( T1 * orginal_vector1, T1 * rotated_vector1,
|
|
|
+ T1 * orginal_vector3, T1 * rotated_vector3,
|
|
|
+ T1 * orginal_vector5, T1 * rotated_vector5,
|
|
|
+ size_t rotate_by, size_t db_nitems)
|
|
|
+{
|
|
|
|
|
|
-// template<typename T1>
|
|
|
-// void rotate_all( T1 * orginal_vector1, T1 * rotated_vector1,
|
|
|
-// T1 * orginal_vector3, T1 * rotated_vector3,
|
|
|
-// T1 * orginal_vector5, T1 * rotated_vector5,
|
|
|
-// size_t rotate_by, size_t db_nitems)
|
|
|
-// {
|
|
|
-
|
|
|
-// for(size_t j = 0; j < db_nitems; ++j)
|
|
|
-// {
|
|
|
+ for(size_t j = 0; j < db_nitems; ++j)
|
|
|
+ {
|
|
|
|
|
|
-// rotated_vector1[(j + rotate_by) % db_nitems] = orginal_vector1[j];
|
|
|
-// rotated_vector3[(j + rotate_by) % db_nitems] = orginal_vector3[j];
|
|
|
-// rotated_vector5[(j + rotate_by) % db_nitems] = orginal_vector5[j];
|
|
|
-// }
|
|
|
-// }
|
|
|
+ rotated_vector1[(j + rotate_by) % db_nitems] = orginal_vector1[j];
|
|
|
+ rotated_vector3[(j + rotate_by) % db_nitems] = orginal_vector3[j];
|
|
|
+ rotated_vector5[(j + rotate_by) % db_nitems] = orginal_vector5[j];
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
DB_t dot_product_with_bool(DB_t D[], int8_t flags[], size_t db_nitems, size_t rotate_by = 0)
|
|
|
{
|