18 #ifndef __YAOCLIENTSHARING_H__
19 #define __YAOCLIENTSHARING_H__
35 YaoSharing(role, sharebitlen, circuit, crypt) {
52 void EvaluateConversionGate(uint32_t gateid);
61 void GetDataToSend(vector<BYTE*>& sendbuf, vector<uint32_t>& bytesize);
76 uint32_t m_nChoiceBitCtr;
78 uint32_t m_nKeyInputRcvIdx;
80 uint32_t m_nServerInBitCtr;
81 uint32_t m_nClientSndOTCtr;
82 uint32_t m_nClientRcvKeyCtr;
83 uint32_t m_nClientOutputShareCtr;
84 uint32_t m_nServerOutputShareCtr;
86 uint32_t m_nClientOUTBitCtr;
89 vector<CBitVector> m_vClientKeyRcvBuf;
91 uint32_t m_nGarbledCircuitRcvCtr;
96 vector<uint32_t> m_vClientSendCorrectionGates;
97 vector<uint32_t> m_vClientRcvInputKeyGates;
99 vector<uint32_t> m_vServerInputGates;
104 uint8_t** m_vTmpEncBuf;
110 void ReceiveServerKeys(uint32_t gateid);
115 void ReceiveClientKeys(uint32_t gateid);
120 void AssignServerInputKeys();
124 void AssignClientInputKeys();
131 void EvaluateXORGate(
GATE* gate);
137 void EvaluateANDGate(
GATE* gate);
145 BOOL EvaluateGarbledTable(
GATE* gate, uint32_t pos,
GATE* gleft,
GATE* gright);
150 void EvaluateServerOutputGate(
GATE* gate);
156 void EvaluateSIMDGate(uint32_t gateid);
172 void EvaluateClientOutputGate(uint32_t gateid);
178 void ReceiveGarbledCircuitAndOutputShares(
ABYSetup* setup);
void EvaluateInteractiveOperations(uint32_t gateid)
Definition: yaoclientsharing.cpp:170
uint32_t AssignInput(CBitVector &input)
Definition: yaoclientsharing.cpp:627
void GetBuffersToReceive(vector< BYTE * > &rcvbuf, vector< uint32_t > &rcvbytes)
Definition: yaoclientsharing.cpp:449
void PrepareSetupPhase(ABYSetup *setup)
Definition: yaoclientsharing.cpp:55
void InstantiateGate(GATE *gate)
Definition: yaoclientsharing.cpp:555
void PerformSetupPhase(ABYSetup *setup)
Definition: yaoclientsharing.cpp:102
void UsedGate(uint32_t gateid)
Definition: yaoclientsharing.cpp:560
Sharing class. A virtual class that contains the methods which the sharing schemes have to implement...
Definition: abycircuit.h:122
void FinishSetupPhase(ABYSetup *setup)
Definition: yaoclientsharing.cpp:126
Definition: yaoclientsharing.h:30
void PrepareOnlinePhase()
Definition: yaoclientsharing.cpp:108
YaoClientSharing(e_role role, uint32_t sharebitlen, ABYCircuit *circuit, crypto *crypt)
Definition: yaoclientsharing.h:34
const char * sharing_type()
Definition: yaoclientsharing.h:67
Definition: yaosharing.h:42
void GetDataToSend(vector< BYTE * > &sendbuf, vector< uint32_t > &bytesize)
Definition: yaoclientsharing.cpp:410
void EvaluateLocalOperations(uint32_t gateid)
Definition: yaoclientsharing.cpp:137
e_role
Defines the role of the party or the source / target for certain operations (e.g., input/output)
Definition: constants.h:139
void FinishCircuitLayer()
Definition: yaoclientsharing.cpp:474
void Reset()
Definition: yaoclientsharing.cpp:671
Definition: abycircuit.h:144
~YaoClientSharing()
Definition: yaoclientsharing.h:40
Definition: abysetup.h:77
uint32_t GetOutput(CBitVector &out)
Definition: yaoclientsharing.cpp:653
Definition: cbitvector.h:123