ABY Framework  1.0
Arithmetic Bool Yao Framework
 All Classes Files Functions Variables Enumerations Enumerator Macros
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
YaoSharing Class Referenceabstract

#include <yaosharing.h>

Inheritance diagram for YaoSharing:
Inheritance graph
[legend]
Collaboration diagram for YaoSharing:
Collaboration graph
[legend]

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 ()
 
CircuitGetCircuitBuildRoutine ()
 
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

YaoKeym_pKeyOps
 
uint32_t m_nANDGates
 
uint32_t m_nXORGates
 
XORMaskingfMaskFct
 
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
 
BooleanCircuitm_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
 
GATEm_pGates
 
ABYCircuitm_pCircuit
 
e_role m_eRole
 
uint32_t m_nSecParamBytes
 
cryptom_cCrypto
 

Detailed Description

Yao Sharing class. <Detailed Description please.>

Constructor & Destructor Documentation

YaoSharing::YaoSharing ( e_role  role,
uint32_t  sharebitlen,
ABYCircuit circuit,
crypto crypt 
)
inline

Constructor for the class.

YaoSharing::~YaoSharing ( )
inline

Destructor for the class.

Member Function Documentation

virtual uint32_t YaoSharing::AssignInput ( CBitVector input)
pure virtual

Method for assigning the input

Parameters
inputInput

Implements Sharing.

Implemented in YaoServerSharing, and YaoClientSharing.

BOOL YaoSharing::EncryptWire ( BYTE *  c,
BYTE *  p,
uint32_t  id 
)
protected

Encrypt Wire Function <DETAILED description>="">

Parameters
c________________
p________________
id________________
virtual void YaoSharing::EvaluateLocalOperations ( uint32_t  level)
pure virtual

Method for evaluating the local operations.

Parameters
level_______________________

Implements Sharing.

Implemented in YaoServerSharing, and YaoClientSharing.

void YaoSharing::EvaluateSIMDGate ( uint32_t  gateid)

Evaluating SIMD Gate.

Parameters
gateidIdentifier of the gate to be evaluated.
virtual void YaoSharing::FinishCircuitLayer ( )
pure virtual

Method for finishing the circuit layer <Better description="" please>="">

Implements Sharing.

Implemented in YaoServerSharing, and YaoClientSharing.

virtual void YaoSharing::FinishSetupPhase ( ABYSetup setup)
pure virtual

Method for finishing the sharing setup.

Parameters
setupObject for setting up the share.

Implements Sharing.

Implemented in YaoServerSharing, and YaoClientSharing.

virtual void YaoSharing::GetBuffersToReceive ( vector< BYTE * > &  rcvbuf,
vector< uint32_t > &  rcvbytes 
)
pure virtual

Method for receiving the data.

Parameters
rsvbufreceiver buffer
rcvsizedata size

Implements Sharing.

Implemented in YaoServerSharing, and YaoClientSharing.

Circuit* YaoSharing::GetCircuitBuildRoutine ( )
inlinevirtual

Method for _________________________________

Implements Sharing.

virtual void YaoSharing::GetDataToSend ( vector< BYTE * > &  sendbuf,
vector< uint32_t > &  bytesize 
)
pure virtual

Method for sending the data.

Parameters
sendbufsender buffer
bytesizedata size

Implements Sharing.

Implemented in YaoServerSharing, and YaoClientSharing.

uint32_t YaoSharing::GetMaxCommunicationRounds ( )
inlinevirtual

Method for finding the maximum communication rounds.

Implements Sharing.

uint32_t YaoSharing::GetNumNonLinearOperations ( )
inlinevirtual

Method for finding the number of non-linear operations.

Implements Sharing.

virtual uint32_t YaoSharing::GetOutput ( CBitVector out)
pure virtual

Method for getting the output

Parameters
outputOutput

Implements Sharing.

Implemented in YaoServerSharing, and YaoClientSharing.

void YaoSharing::Init ( )
protected

Initiator function. This method is invoked from the constructor of the class.

virtual void YaoSharing::InstantiateGate ( GATE gate)
pure virtual

Method for Instantiating a gate

Parameters
gateInput gate

Implements Sharing.

Implemented in YaoServerSharing, and YaoClientSharing.

virtual void YaoSharing::PerformSetupPhase ( ABYSetup setup)
pure virtual

Method for performing the sharing setup.

Parameters
setupObject for setting up the share.

Implements Sharing.

Implemented in YaoServerSharing, and YaoClientSharing.

virtual void YaoSharing::PrepareOnlinePhase ( )
pure virtual

Method for preparing the online phase <Better description="" please>="">

Implements Sharing.

Implemented in YaoServerSharing, and YaoClientSharing.

virtual void YaoSharing::PrepareSetupPhase ( ABYSetup setup)
pure virtual

Method for preparing the sharing setup.

Parameters
setupObject for setting up the share.

Implements Sharing.

Implemented in YaoServerSharing, and YaoClientSharing.

void YaoSharing::PrintKey ( BYTE *  key)
protected

Print the key.

void YaoSharing::PrintPerformanceStatistics ( )
virtual

Method for printing the performance statistics.

Implements Sharing.

virtual void YaoSharing::Reset ( )
pure virtual

Reset method

Implements Sharing.

Implemented in YaoServerSharing, and YaoClientSharing.

virtual void YaoSharing::UsedGate ( uint32_t  gateid)
pure virtual

Method for finding the used gate with the gateid.

Parameters
gateidId of the used gate.

Implements Sharing.

Implemented in YaoServerSharing, and YaoClientSharing.

Member Data Documentation

XORMasking* YaoSharing::fMaskFct
protected

Mask ____________

BYTE* YaoSharing::m_bResKeyBuf
protected

BYTE* YaoSharing::m_bTempKeyBuf
protected

Temporary Key Buffer.

BYTE* YaoSharing::m_bZeroBuf
protected

Zero Buffer.

BooleanCircuit* YaoSharing::m_cBoolCircuit
protected

Boolean circuit

AES_KEY_CTX* YaoSharing::m_kGarble
protected

uint32_t YaoSharing::m_nANDGates
protected

AND Gates_____________

uint64_t YaoSharing::m_nANDWindowCtr
protected

Counts #AND gates for pipelined exec

uint32_t YaoSharing::m_nClientInputBits
protected

Client Input Bits.

uint32_t YaoSharing::m_nConversionInputBits
protected

Conversion Input Bits.

uint64_t YaoSharing::m_nGarbledTableCtr
protected

Garbled Table Counter.

uint32_t YaoSharing::m_nInputShareRcvSize
protected

Input share receiver size.

uint32_t YaoSharing::m_nInputShareSndSize
protected

Input share send size.

uint32_t YaoSharing::m_nOutputShareRcvSize
protected

Output share receiver size.

uint32_t YaoSharing::m_nOutputShareSndSize
protected

Output share send size.

uint64_t YaoSharing::m_nRemANDGates
protected

Remaining AND gates to be processed for pipelined exec

uint32_t YaoSharing::m_nSecParamIters
protected

Secure_____________

uint32_t YaoSharing::m_nServerInputBits
protected

Server Input Bits.

uint32_t YaoSharing::m_nXORGates
protected

XOR Gates_____________

YaoKey* YaoSharing::m_pKeyOps
protected

A variable that points to inline functions for key xor.

vector<GATE*> YaoSharing::m_vANDGates
protected

Vector of AND Gates.

CBitVector YaoSharing::m_vClientInputKeys
protected

Client Input Keys.

CBitVector YaoSharing::m_vGarbledCircuit
protected

Garbled Circuit Vector.

vector<GATE*> YaoSharing::m_vOutputShareGates
protected

Vector of output share gates.

CBitVector YaoSharing::m_vServerInputKeys
protected

Server Input Keys.


The documentation for this class was generated from the following files: