|
@@ -22,10 +22,10 @@ using boost::asio::ip::tcp;
|
|
|
|
|
|
// Classes to represent stored precomputed data (e.g., multiplication triples)
|
|
// Classes to represent stored precomputed data (e.g., multiplication triples)
|
|
|
|
|
|
-template<typename T>
|
|
|
|
|
|
+template<typename T, typename N>
|
|
class PreCompStorage {
|
|
class PreCompStorage {
|
|
public:
|
|
public:
|
|
- PreCompStorage() : count(0) {}
|
|
|
|
|
|
+ PreCompStorage() : name(N::name), depth(0), count(0) {}
|
|
PreCompStorage(unsigned player, bool preprocessing,
|
|
PreCompStorage(unsigned player, bool preprocessing,
|
|
const char *filenameprefix, unsigned thread_num);
|
|
const char *filenameprefix, unsigned thread_num);
|
|
void init(unsigned player, bool preprocessing,
|
|
void init(unsigned player, bool preprocessing,
|
|
@@ -36,6 +36,8 @@ public:
|
|
inline void reset_stats() { count = 0; }
|
|
inline void reset_stats() { count = 0; }
|
|
private:
|
|
private:
|
|
std::ifstream storage;
|
|
std::ifstream storage;
|
|
|
|
+ std::string name;
|
|
|
|
+ nbits_t depth;
|
|
size_t count;
|
|
size_t count;
|
|
};
|
|
};
|
|
|
|
|
|
@@ -194,11 +196,11 @@ struct MPCPeerIO : public MPCIO {
|
|
// culprit), but you can have a deque of those for some reason.
|
|
// culprit), but you can have a deque of those for some reason.
|
|
std::deque<MPCSingleIO> peerios;
|
|
std::deque<MPCSingleIO> peerios;
|
|
std::deque<MPCSingleIO> serverios;
|
|
std::deque<MPCSingleIO> serverios;
|
|
- std::vector<PreCompStorage<MultTriple>> triples;
|
|
|
|
- std::vector<PreCompStorage<HalfTriple>> halftriples;
|
|
|
|
|
|
+ std::vector<PreCompStorage<MultTriple, MultTripleName>> triples;
|
|
|
|
+ std::vector<PreCompStorage<HalfTriple, HalfTripleName>> halftriples;
|
|
// The outer vector is (like above) one item per thread
|
|
// The outer vector is (like above) one item per thread
|
|
// The inner array is indexed by DPF depth (depth d is at entry d-1)
|
|
// The inner array is indexed by DPF depth (depth d is at entry d-1)
|
|
- std::vector<std::array<PreCompStorage<RDPFTriple>,ADDRESS_MAX_BITS>> rdpftriples;
|
|
|
|
|
|
+ std::vector<std::array<PreCompStorage<RDPFTriple, RDPFTripleName>,ADDRESS_MAX_BITS>> rdpftriples;
|
|
|
|
|
|
MPCPeerIO(unsigned player, bool preprocessing,
|
|
MPCPeerIO(unsigned player, bool preprocessing,
|
|
std::deque<tcp::socket> &peersocks,
|
|
std::deque<tcp::socket> &peersocks,
|
|
@@ -219,7 +221,7 @@ struct MPCServerIO : public MPCIO {
|
|
std::deque<MPCSingleIO> p1ios;
|
|
std::deque<MPCSingleIO> p1ios;
|
|
// The outer vector is (like above) one item per thread
|
|
// The outer vector is (like above) one item per thread
|
|
// The inner array is indexed by DPF depth (depth d is at entry d-1)
|
|
// The inner array is indexed by DPF depth (depth d is at entry d-1)
|
|
- std::vector<std::array<PreCompStorage<RDPFPair>,ADDRESS_MAX_BITS>> rdpfpairs;
|
|
|
|
|
|
+ std::vector<std::array<PreCompStorage<RDPFPair, RDPFPairName>,ADDRESS_MAX_BITS>> rdpfpairs;
|
|
|
|
|
|
MPCServerIO(bool preprocessing,
|
|
MPCServerIO(bool preprocessing,
|
|
std::deque<tcp::socket> &p0socks,
|
|
std::deque<tcp::socket> &p0socks,
|