diff --git a/emp-ot/ferret/ferret_cot.hpp b/emp-ot/ferret/ferret_cot.hpp index aa521ba..3465024 100644 --- a/emp-ot/ferret/ferret_cot.hpp +++ b/emp-ot/ferret/ferret_cot.hpp @@ -193,7 +193,9 @@ void FerretCOT::write_pre_data128_to_file(void* loc, __uint128_t delta, std:: if(outfile.is_open()) outfile.close(); else error("create a directory to store pre-OT data"); FileIO fio(filename.c_str(), false); - fio.send_data(&party, sizeof(int64_t)); + int64_t party64 = party; + fio.send_data(&party64, sizeof(int64_t)); + if(party == ALICE) fio.send_data(&delta, 16); fio.send_data(¶m.n, sizeof(int64_t)); fio.send_data(¶m.t, sizeof(int64_t)); @@ -204,9 +206,10 @@ void FerretCOT::write_pre_data128_to_file(void* loc, __uint128_t delta, std:: template __uint128_t FerretCOT::read_pre_data128_from_file(void* pre_loc, std::string filename) { FileIO fio(filename.c_str(), true); - int in_party; + int64_t in_party; fio.recv_data(&in_party, sizeof(int64_t)); if(in_party != party) error("wrong party"); + __uint128_t delta = 0; if(party == ALICE) fio.recv_data(&delta, 16); int64_t nin, tin, kin;