ABY Framework
1.0
Arithmetic Bool Yao Framework
|
#include <yaosharing.h>
Public Member Functions | |
YaoSharing (e_role role, uint32_t sharebitlen, ABYCircuit *circuit, crypto *crypt) | |
~YaoSharing () | |
virtual void | Reset ()=0 |
virtual void | PrepareSetupPhase (ABYSetup *setup)=0 |
virtual void | PerformSetupPhase (ABYSetup *setup)=0 |
virtual void | FinishSetupPhase (ABYSetup *setup)=0 |
virtual void | EvaluateLocalOperations (uint32_t gateid)=0 |
virtual void | FinishCircuitLayer ()=0 |
virtual void | PrepareOnlinePhase ()=0 |
virtual void | InstantiateGate (GATE *gate)=0 |
virtual void | UsedGate (uint32_t gateid)=0 |
virtual void | GetDataToSend (vector< BYTE * > &sendbuf, vector< uint32_t > &bytesize)=0 |
virtual void | GetBuffersToReceive (vector< BYTE * > &rcvbuf, vector< uint32_t > &rcvbytes)=0 |
virtual uint32_t | AssignInput (CBitVector &input)=0 |
virtual uint32_t | GetOutput (CBitVector &out)=0 |
uint32_t | GetMaxCommunicationRounds () |
uint32_t | GetNumNonLinearOperations () |
Circuit * | GetCircuitBuildRoutine () |
void | PrintPerformanceStatistics () |
void | EvaluateSIMDGate (uint32_t gateid) |
Public Member Functions inherited from Sharing | |
Sharing (e_role role, uint32_t sharebitlen, ABYCircuit *circuit, crypto *crypt) | |
Initialises the members of the class. More... | |
~Sharing () | |
virtual void | EvaluateInteractiveOperations (uint32_t level)=0 |
virtual const char * | sharing_type ()=0 |
Protected Member Functions | |
void | Init () |
BOOL | EncryptWire (BYTE *c, BYTE *p, uint32_t id) |
void | PrintKey (BYTE *key) |
Protected Member Functions inherited from Sharing | |
void | EvaluateCallbackGate (uint32_t gateid) |
Protected Attributes | |
YaoKey * | m_pKeyOps |
uint32_t | m_nANDGates |
uint32_t | m_nXORGates |
XORMasking * | fMaskFct |
vector< GATE * > | m_vANDGates |
vector< GATE * > | m_vOutputShareGates |
uint32_t | m_nInputShareSndSize |
uint32_t | m_nOutputShareSndSize |
uint32_t | m_nInputShareRcvSize |
uint32_t | m_nOutputShareRcvSize |
uint32_t | m_nClientInputBits |
CBitVector | m_vClientInputKeys |
uint32_t | m_nConversionInputBits |
uint32_t | m_nServerInputBits |
CBitVector | m_vServerInputKeys |
CBitVector | m_vGarbledCircuit |
uint64_t | m_nGarbledTableCtr |
BYTE * | m_bZeroBuf |
BYTE * | m_bTempKeyBuf |
BooleanCircuit * | m_cBoolCircuit |
uint32_t | m_nSecParamIters |
uint64_t | m_nANDWindowCtr |
uint64_t | m_nRemANDGates |
BYTE * | m_bResKeyBuf |
AES_KEY_CTX * | m_kGarble |
Protected Attributes inherited from Sharing | |
uint32_t | m_nShareBitLen |
GATE * | m_pGates |
ABYCircuit * | m_pCircuit |
e_role | m_eRole |
uint32_t | m_nSecParamBytes |
crypto * | m_cCrypto |
Yao Sharing class. <Detailed Description please.>
|
inline |
Constructor for the class.
|
inline |
Destructor for the class.
|
pure virtual |
Method for assigning the input
input | Input |
Implements Sharing.
Implemented in YaoServerSharing, and YaoClientSharing.
|
protected |
Encrypt Wire Function <DETAILED description>="">
c | ________________ |
p | ________________ |
id | ________________ |
|
pure virtual |
Method for evaluating the local operations.
level | _______________________ |
Implements Sharing.
Implemented in YaoServerSharing, and YaoClientSharing.
void YaoSharing::EvaluateSIMDGate | ( | uint32_t | gateid | ) |
Evaluating SIMD Gate.
gateid | Identifier of the gate to be evaluated. |
|
pure virtual |
Method for finishing the circuit layer <Better description="" please>="">
Implements Sharing.
Implemented in YaoServerSharing, and YaoClientSharing.
|
pure virtual |
Method for finishing the sharing setup.
setup | Object for setting up the share. |
Implements Sharing.
Implemented in YaoServerSharing, and YaoClientSharing.
|
pure virtual |
Method for receiving the data.
rsvbuf | receiver buffer |
rcvsize | data size |
Implements Sharing.
Implemented in YaoServerSharing, and YaoClientSharing.
|
inlinevirtual |
Method for _________________________________
Implements Sharing.
|
pure virtual |
Method for sending the data.
sendbuf | sender buffer |
bytesize | data size |
Implements Sharing.
Implemented in YaoServerSharing, and YaoClientSharing.
|
inlinevirtual |
Method for finding the maximum communication rounds.
Implements Sharing.
|
inlinevirtual |
Method for finding the number of non-linear operations.
Implements Sharing.
|
pure virtual |
Method for getting the output
output | Output |
Implements Sharing.
Implemented in YaoServerSharing, and YaoClientSharing.
|
protected |
Initiator function. This method is invoked from the constructor of the class.
|
pure virtual |
Method for Instantiating a gate
gate | Input gate |
Implements Sharing.
Implemented in YaoServerSharing, and YaoClientSharing.
|
pure virtual |
Method for performing the sharing setup.
setup | Object for setting up the share. |
Implements Sharing.
Implemented in YaoServerSharing, and YaoClientSharing.
|
pure virtual |
Method for preparing the online phase <Better description="" please>="">
Implements Sharing.
Implemented in YaoServerSharing, and YaoClientSharing.
|
pure virtual |
Method for preparing the sharing setup.
setup | Object for setting up the share. |
Implements Sharing.
Implemented in YaoServerSharing, and YaoClientSharing.
|
protected |
Print the key.
|
virtual |
Method for printing the performance statistics.
Implements Sharing.
|
pure virtual |
|
pure virtual |
Method for finding the used gate with the gateid.
gateid | Id of the used gate. |
Implements Sharing.
Implemented in YaoServerSharing, and YaoClientSharing.
|
protected |
Mask ____________
|
protected |
|
protected |
Temporary Key Buffer.
|
protected |
Zero Buffer.
|
protected |
Boolean circuit
|
protected |
|
protected |
AND Gates_____________
|
protected |
Counts #AND gates for pipelined exec
|
protected |
Client Input Bits.
|
protected |
Conversion Input Bits.
|
protected |
Garbled Table Counter.
|
protected |
Input share receiver size.
|
protected |
Input share send size.
|
protected |
Output share receiver size.
|
protected |
Output share send size.
|
protected |
Remaining AND gates to be processed for pipelined exec
|
protected |
Secure_____________
|
protected |
Server Input Bits.
|
protected |
XOR Gates_____________
|
protected |
A variable that points to inline functions for key xor.
|
protected |
Vector of AND Gates.
|
protected |
Client Input Keys.
|
protected |
Garbled Circuit Vector.
|
protected |
Vector of output share gates.
|
protected |
Server Input Keys.