filesio.h 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356
  1. void write_evalfull_outs_into_a_file(bool party, size_t i, size_t db_nitems, int8_t ** flags, int64_t * outs_, __m128i * final_correction_word)
  2. {
  3. if(!party)
  4. {
  5. char const * p0_filename0;
  6. char tmp[100];
  7. p0_filename0 = "../duoram-online/preprocflags/party0_read_flags_b";
  8. strcpy(tmp, p0_filename0);
  9. strcat(tmp, std::to_string(i).c_str());
  10. int w0 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  11. int written = write(w0, flags[i], db_nitems * sizeof(flags[i][0]));
  12. if(written<0) perror("Write error");
  13. close(w0);
  14. p0_filename0 = "../duoram-online/preprocflags/party0_read_flags_c";
  15. strcpy(tmp, p0_filename0);
  16. strcat(tmp, std::to_string(i).c_str());
  17. int w1 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  18. written = write(w1, flags[i], db_nitems * sizeof(flags[i][0]));
  19. if(written<0) perror("Write error");
  20. close(w1);
  21. p0_filename0 = "../duoram-online/preprocflags/party0_read_flags_d";
  22. strcpy(tmp, p0_filename0);
  23. strcat(tmp, std::to_string(i).c_str());
  24. int w2 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  25. written = write(w2, flags[i], db_nitems * sizeof(flags[i][0]));
  26. if(written<0) perror("Write error");
  27. close(w2);
  28. p0_filename0 = "../duoram-online/preprocflags/party0_write_flags_b";
  29. strcpy(tmp, p0_filename0);
  30. strcat(tmp, std::to_string(i).c_str());
  31. int w4 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  32. written = write(w4, flags[i], db_nitems * sizeof(flags[i][0]));
  33. if(written<0) perror("Write error");
  34. close(w4);
  35. p0_filename0 = "../duoram-online/preprocflags/party0_write_flags_c";
  36. strcpy(tmp, p0_filename0);
  37. strcat(tmp, std::to_string(i).c_str());
  38. int w5 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  39. written = write(w5, flags[i], db_nitems * sizeof(flags[i][0]));
  40. if(written<0) perror("Write error");
  41. close(w5);
  42. p0_filename0 = "../duoram-online/preprocflags/party0_write_flags_d";
  43. strcpy(tmp, p0_filename0);
  44. strcat(tmp, std::to_string(i).c_str());
  45. int w6 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  46. written = write(w6, flags[i], db_nitems * sizeof(flags[i][0]));
  47. if(written<0) perror("Write error");
  48. close(w6);
  49. p0_filename0 = "../duoram-online/preprocflags/party0_write_b";
  50. strcpy(tmp, p0_filename0);
  51. strcat(tmp, std::to_string(i).c_str());
  52. w4 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  53. written = write(w4, outs_, db_nitems * sizeof(outs_[0]));
  54. if(written<0) perror("Write error");
  55. close(w4);
  56. p0_filename0 = "../duoram-online/preprocflags/party0_write_c";
  57. strcpy(tmp, p0_filename0);
  58. strcat(tmp, std::to_string(i).c_str());
  59. w5 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  60. written = write(w5, outs_, db_nitems * sizeof(outs_[0]));
  61. if(written<0) perror("Write error");
  62. close(w5);
  63. p0_filename0 = "../duoram-online/preprocflags/party0_write_d";
  64. strcpy(tmp, p0_filename0);
  65. strcat(tmp, std::to_string(i).c_str());
  66. w6 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  67. written = write(w6, outs_, db_nitems * sizeof(outs_[0]));
  68. if(written<0) perror("Write error");
  69. close(w6);
  70. }
  71. if(party)
  72. {
  73. char const * p0_filename0;
  74. char tmp[100];
  75. p0_filename0 = "../duoram-online/preprocflags/party1_read_flags_b";
  76. strcpy(tmp, p0_filename0);
  77. strcat(tmp, std::to_string(i).c_str());
  78. int w0 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  79. int written = write(w0, flags[i], db_nitems * sizeof(flags[i][0]));
  80. if(written<0) perror("Write error");
  81. close(w0);
  82. p0_filename0 = "../duoram-online/preprocflags/party1_read_flags_c";
  83. strcpy(tmp, p0_filename0);
  84. strcat(tmp, std::to_string(i).c_str());
  85. int w1 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  86. written = write(w1, flags[i], db_nitems * sizeof(flags[i][0]));
  87. if(written<0) perror("Write error");
  88. close(w1);
  89. p0_filename0 = "../duoram-online/preprocflags/party1_read_flags_d";
  90. strcpy(tmp, p0_filename0);
  91. strcat(tmp, std::to_string(i).c_str());
  92. int w2 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  93. written = write(w2,flags[i], db_nitems * sizeof(flags[i][0]));
  94. if(written<0) perror("Write error");
  95. close(w2);
  96. p0_filename0 = "../duoram-online/preprocflags/party1_write_flags_b";
  97. strcpy(tmp, p0_filename0);
  98. strcat(tmp, std::to_string(i).c_str());
  99. int w4 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  100. written = write(w4,flags[i], db_nitems * sizeof(flags[i][0]));
  101. if(written<0) perror("Write error");
  102. close(w4);
  103. p0_filename0 = "../duoram-online/preprocflags/party1_write_flags_c";
  104. strcpy(tmp, p0_filename0);
  105. strcat(tmp, std::to_string(i).c_str());
  106. int w5 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  107. written = write(w5, flags[i], db_nitems * sizeof(flags[i][0]));
  108. if(written<0) perror("Write error");
  109. close(w5);
  110. p0_filename0 = "../duoram-online/preprocflags/party1_write_flags_d";
  111. strcpy(tmp, p0_filename0);
  112. strcat(tmp, std::to_string(i).c_str());
  113. int w6 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  114. written = write(w6, flags[i], db_nitems * sizeof(flags[i][0]));
  115. if(written<0) perror("Write error");
  116. close(w6);
  117. p0_filename0 = "../duoram-online/preprocflags/party1_write_b";
  118. strcpy(tmp, p0_filename0);
  119. strcat(tmp, std::to_string(i).c_str());
  120. w4 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  121. written = write(w4, outs_, db_nitems * sizeof(outs_[0]));
  122. if(written<0) perror("Write error");
  123. close(w4);
  124. p0_filename0 = "../duoram-online/preprocflags/party1_write_c";
  125. strcpy(tmp, p0_filename0);
  126. strcat(tmp, std::to_string(i).c_str());
  127. w5 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  128. written = write(w5, outs_, db_nitems * sizeof(outs_[0]));
  129. if(written<0) perror("Write error");
  130. close(w5);
  131. p0_filename0 = "../duoram-online/preprocflags/party1_write_d";
  132. strcpy(tmp, p0_filename0);
  133. strcat(tmp, std::to_string(i).c_str());
  134. w6 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  135. written = write(w6, outs_, db_nitems * sizeof(outs_[0]));
  136. if(written<0) perror("Write error");
  137. close(w6);
  138. }
  139. if(party)
  140. {
  141. char const * p1_filename0;
  142. char tmp[100];
  143. p1_filename0 = "../duoram-online/preprocflags/FCW1";
  144. strcpy(tmp, p1_filename0);
  145. strcat(tmp, std::to_string(i).c_str());
  146. int w0 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  147. int written = write(w0, &final_correction_word[0][0], sizeof(final_correction_word[0][0]));
  148. if(written<0) perror("Write error");
  149. close(w0);
  150. }
  151. if(!party)
  152. {
  153. char const * p0_filename0;
  154. char tmp[100];
  155. p0_filename0 = "../duoram-online/preprocflags/FCW0";
  156. strcpy(tmp, p0_filename0);
  157. strcat(tmp, std::to_string(i).c_str());
  158. int w0 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  159. int written = write(w0, &final_correction_word[0][0], sizeof(final_correction_word[0][0]));
  160. if(written<0) perror("Write error");
  161. close(w0);
  162. }
  163. }
  164. void P2_write_evalfull_outs_into_a_file(bool party, size_t i, size_t db_nitems, int8_t * flags, int64_t * outs_)
  165. {
  166. if(!party)
  167. {
  168. char const * p0_filename0;
  169. char tmp[100];
  170. p0_filename0 = "../duoram-online/preprocflags/P2_party0_read_flags_b";
  171. strcpy(tmp, p0_filename0);
  172. strcat(tmp, std::to_string(i).c_str());
  173. int w0 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  174. int written = write(w0, flags, db_nitems * sizeof(flags[i]));
  175. if(written<0) perror("Write error");
  176. close(w0);
  177. p0_filename0 = "../duoram-online/preprocflags/P2_party0_read_flags_c";
  178. strcpy(tmp, p0_filename0);
  179. strcat(tmp, std::to_string(i).c_str());
  180. int w1 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  181. written = write(w1, flags, db_nitems * sizeof(flags[i]));
  182. if(written<0) perror("Write error");
  183. close(w1);
  184. p0_filename0 = "../duoram-online/preprocflags/P2_party0_read_flags_d";
  185. strcpy(tmp, p0_filename0);
  186. strcat(tmp, std::to_string(i).c_str());
  187. int w2 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  188. written = write(w2, flags, db_nitems * sizeof(flags[i]));
  189. if(written<0) perror("Write error");
  190. close(w2);
  191. p0_filename0 = "../duoram-online/preprocflags/P2_party0_write_flags_b";
  192. strcpy(tmp, p0_filename0);
  193. strcat(tmp, std::to_string(i).c_str());
  194. int w4 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  195. written = write(w4, flags, db_nitems * sizeof(flags[i]));
  196. if(written<0) perror("Write error");
  197. close(w4);
  198. p0_filename0 = "../duoram-online/preprocflags/P2_party0_write_flags_c";
  199. strcpy(tmp, p0_filename0);
  200. strcat(tmp, std::to_string(i).c_str());
  201. int w5 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  202. written = write(w5, flags, db_nitems * sizeof(flags[i]));
  203. if(written<0) perror("Write error");
  204. close(w5);
  205. p0_filename0 = "../duoram-online/preprocflags/P2_party0_write_flags_d";
  206. strcpy(tmp, p0_filename0);
  207. strcat(tmp, std::to_string(i).c_str());
  208. int w6 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  209. written = write(w6, flags, db_nitems * sizeof(flags[i]));
  210. if(written<0) perror("Write error");
  211. close(w6);
  212. p0_filename0 = "../duoram-online/preprocflags/P2_party0_write_b";
  213. strcpy(tmp, p0_filename0);
  214. strcat(tmp, std::to_string(i).c_str());
  215. w4 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  216. written = write(w4, outs_, db_nitems * sizeof(outs_[i]));
  217. if(written<0) perror("Write error");
  218. close(w4);
  219. p0_filename0 = "../duoram-online/preprocflags/P2_party0_write_c";
  220. strcpy(tmp, p0_filename0);
  221. strcat(tmp, std::to_string(i).c_str());
  222. w5 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  223. written = write(w5, outs_, db_nitems * sizeof(outs_[i]));
  224. if(written<0) perror("Write error");
  225. close(w5);
  226. p0_filename0 = "../duoram-online/preprocflags/P2_party0_write_d";
  227. strcpy(tmp, p0_filename0);
  228. strcat(tmp, std::to_string(i).c_str());
  229. w6 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  230. written = write(w6, outs_, db_nitems * sizeof(outs_[i]));
  231. if(written<0) perror("Write error");
  232. close(w6);
  233. }
  234. if(party)
  235. {
  236. char const * p0_filename0;
  237. char tmp[100];
  238. p0_filename0 = "../duoram-online/preprocflags/P2_party1_read_flags_b";
  239. strcpy(tmp, p0_filename0);
  240. strcat(tmp, std::to_string(i).c_str());
  241. int w0 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  242. int written = write(w0, flags, db_nitems * sizeof(flags[i]));
  243. if(written<0) perror("Write error");
  244. close(w0);
  245. p0_filename0 = "../duoram-online/preprocflags/P2_party1_read_flags_c";
  246. strcpy(tmp, p0_filename0);
  247. strcat(tmp, std::to_string(i).c_str());
  248. int w1 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  249. written = write(w1, flags, db_nitems * sizeof(flags[i]));
  250. if(written<0) perror("Write error");
  251. close(w1);
  252. p0_filename0 = "../duoram-online/preprocflags/P2_party1_read_flags_d";
  253. strcpy(tmp, p0_filename0);
  254. strcat(tmp, std::to_string(i).c_str());
  255. int w2 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  256. written = write(w2,flags, db_nitems * sizeof(flags[i]));
  257. if(written<0) perror("Write error");
  258. close(w2);
  259. p0_filename0 = "../duoram-online/preprocflags/P2_party1_write_flags_b";
  260. strcpy(tmp, p0_filename0);
  261. strcat(tmp, std::to_string(i).c_str());
  262. int w4 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  263. written = write(w4,flags, db_nitems * sizeof(flags[i]));
  264. if(written<0) perror("Write error");
  265. close(w4);
  266. p0_filename0 = "../duoram-online/preprocflags/P2_party1_write_flags_c";
  267. strcpy(tmp, p0_filename0);
  268. strcat(tmp, std::to_string(i).c_str());
  269. int w5 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  270. written = write(w5, flags, db_nitems * sizeof(flags[i]));
  271. if(written<0) perror("Write error");
  272. close(w5);
  273. p0_filename0 = "../duoram-online/preprocflags/P2_party1_write_flags_d";
  274. strcpy(tmp, p0_filename0);
  275. strcat(tmp, std::to_string(i).c_str());
  276. int w6 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  277. written = write(w6, flags, db_nitems * sizeof(flags[i]));
  278. if(written<0) perror("Write error");
  279. close(w6);
  280. p0_filename0 = "../duoram-online/preprocflags/P2_party1_write_b";
  281. strcpy(tmp, p0_filename0);
  282. strcat(tmp, std::to_string(i).c_str());
  283. w4 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  284. written = write(w4, outs_, db_nitems * sizeof(outs_[i]));
  285. if(written<0) perror("Write error");
  286. close(w4);
  287. p0_filename0 = "../duoram-online/preprocflags/P2_party1_write_c";
  288. strcpy(tmp, p0_filename0);
  289. strcat(tmp, std::to_string(i).c_str());
  290. w5 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  291. written = write(w5, outs_, db_nitems * sizeof(outs_[i]));
  292. if(written<0) perror("Write error");
  293. close(w5);
  294. p0_filename0 = "../duoram-online/preprocflags/P2_party1_write_d";
  295. strcpy(tmp, p0_filename0);
  296. strcat(tmp, std::to_string(i).c_str());
  297. w6 = open( tmp, O_WRONLY | O_CREAT, S_IWRITE | S_IREAD);
  298. written = write(w6, outs_, db_nitems * sizeof(outs_[i]));
  299. if(written<0) perror("Write error");
  300. close(w6);
  301. }
  302. }