online.cpp 991 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #include <bsd/stdlib.h> // arc4random_buf
  2. #include "online.hpp"
  3. #include "mpcops.hpp"
  4. void online_comp(MPCIO &mpcio, int num_threads, char **args)
  5. {
  6. nbits_t nbits = VALUE_BITS;
  7. if (*args) {
  8. nbits = atoi(*args);
  9. }
  10. value_t A[5];
  11. arc4random_buf(A, 3*sizeof(value_t));
  12. std::cout << A[0] << "\n";
  13. std::cout << A[1] << "\n";
  14. std::cout << A[2] << "\n";
  15. std::vector<coro_t> coroutines;
  16. coroutines.emplace_back(
  17. [&](yield_t &yield) {
  18. MultTriple T;
  19. mpcio.triples[0].get(T);
  20. mpc_mul(mpcio, 0, yield, A[3], A[0], A[1], T, nbits);
  21. });
  22. coroutines.emplace_back(
  23. [&](yield_t &yield) {
  24. HalfTriple H;
  25. mpcio.halftriples[0].get(H);
  26. mpc_valuemul(mpcio, 0, yield, A[4], A[2], H, nbits);
  27. });
  28. run_coroutines(mpcio, coroutines);
  29. std::cout << A[3] << "\n";
  30. std::cout << A[4] << "\n";
  31. }
  32. void online_server(MPCServerIO &mpcio, char **args)
  33. {
  34. }