From 51c001e2060f90b88323c91039db02b39e622f27 Mon Sep 17 00:00:00 2001 From: Mirage Mouse Date: Fri, 18 Jul 2025 19:25:50 -0400 Subject: [PATCH 1/2] Update ferret_cot.hpp --- emp-ot/ferret/ferret_cot.hpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/emp-ot/ferret/ferret_cot.hpp b/emp-ot/ferret/ferret_cot.hpp index aa521ba..6fa41c6 100644 --- a/emp-ot/ferret/ferret_cot.hpp +++ b/emp-ot/ferret/ferret_cot.hpp @@ -193,7 +193,14 @@ 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)); + fio.send_data(&party, sizeof(int)); + + // for 8-byte alignment in file + if constexpr (sizeof(int) == 4) { + int z = 0; + fio.send_data(&z, sizeof(int)); + } + if(party == ALICE) fio.send_data(&delta, 16); fio.send_data(¶m.n, sizeof(int64_t)); fio.send_data(¶m.t, sizeof(int64_t)); @@ -205,8 +212,15 @@ template __uint128_t FerretCOT::read_pre_data128_from_file(void* pre_loc, std::string filename) { FileIO fio(filename.c_str(), true); int in_party; - fio.recv_data(&in_party, sizeof(int64_t)); + fio.recv_data(&in_party, sizeof(int)); if(in_party != party) error("wrong party"); + + // for 8-byte alignment in file + if constexpr (sizeof(int) == 4) { + int dummy; + fio.recv_data(&dummy, sizeof(int)); + } + __uint128_t delta = 0; if(party == ALICE) fio.recv_data(&delta, 16); int64_t nin, tin, kin; From 6279702857075dba5a1f8b3936e752073718480e Mon Sep 17 00:00:00 2001 From: Xiao Wang Date: Tue, 29 Jul 2025 20:59:18 -0500 Subject: [PATCH 2/2] update fix --- emp-ot/ferret/ferret_cot.hpp | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/emp-ot/ferret/ferret_cot.hpp b/emp-ot/ferret/ferret_cot.hpp index 6fa41c6..3465024 100644 --- a/emp-ot/ferret/ferret_cot.hpp +++ b/emp-ot/ferret/ferret_cot.hpp @@ -193,14 +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(int)); + int64_t party64 = party; + fio.send_data(&party64, sizeof(int64_t)); - // for 8-byte alignment in file - if constexpr (sizeof(int) == 4) { - int z = 0; - fio.send_data(&z, sizeof(int)); - } - if(party == ALICE) fio.send_data(&delta, 16); fio.send_data(¶m.n, sizeof(int64_t)); fio.send_data(¶m.t, sizeof(int64_t)); @@ -211,15 +206,9 @@ 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; - fio.recv_data(&in_party, sizeof(int)); + int64_t in_party; + fio.recv_data(&in_party, sizeof(int64_t)); if(in_party != party) error("wrong party"); - - // for 8-byte alignment in file - if constexpr (sizeof(int) == 4) { - int dummy; - fio.recv_data(&dummy, sizeof(int)); - } __uint128_t delta = 0; if(party == ALICE) fio.recv_data(&delta, 16);