|
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.
1.8.8