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
Sharing Class Referenceabstract

#include <sharing.h>

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

Public Member Functions

 Sharing (e_role role, uint32_t sharebitlen, ABYCircuit *circuit, crypto *crypt)
 Initialises the members of the class. More...
 
 ~Sharing ()
 
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 level)=0
 
virtual void EvaluateInteractiveOperations (uint32_t level)=0
 
virtual void PrepareOnlinePhase ()=0
 
virtual void FinishCircuitLayer ()=0
 
virtual void GetDataToSend (vector< BYTE * > &sendbuf, vector< uint32_t > &bytesize)=0
 
virtual void GetBuffersToReceive (vector< BYTE * > &rcvbuf, vector< uint32_t > &rcvbytes)=0
 
virtual void InstantiateGate (GATE *gate)=0
 
virtual void UsedGate (uint32_t gateid)=0
 
virtual uint32_t AssignInput (CBitVector &input)=0
 
virtual uint32_t GetOutput (CBitVector &out)=0
 
virtual uint32_t GetMaxCommunicationRounds ()=0
 
virtual uint32_t GetNumNonLinearOperations ()=0
 
virtual const char * sharing_type ()=0
 
virtual void PrintPerformanceStatistics ()=0
 
virtual CircuitGetCircuitBuildRoutine ()=0
 

Protected Member Functions

void EvaluateCallbackGate (uint32_t gateid)
 

Protected Attributes

uint32_t m_nShareBitLen
 
GATEm_pGates
 
ABYCircuitm_pCircuit
 
e_role m_eRole
 
uint32_t m_nSecParamBytes
 
cryptom_cCrypto
 

Detailed Description

Generic class for specifying different types of sharing.

Constructor & Destructor Documentation

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

Initialises the members of the class.

Parameters
roleSpecifying the role....
sharebitlenBit Length of share
circuitcircuit object
cryptcrypto object
Sharing::~Sharing ( )
inline

Destructor of class.

Member Function Documentation

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

Method for assigning the input

Parameters
inputInput

Implemented in YaoServerSharing, YaoSharing, BoolSharing, ArithSharing< T >, and YaoClientSharing.

void Sharing::EvaluateCallbackGate ( uint32_t  gateid)
protected

Method for evaluating Callback gate for the inputted gate object.

Parameters
gateidGate identifier
virtual void Sharing::EvaluateInteractiveOperations ( uint32_t  level)
pure virtual

Method for evaluating the interactive operations.

Parameters
level_______________________

Implemented in YaoServerSharing, ArithSharing< T >, YaoClientSharing, and BoolSharing.

virtual void Sharing::EvaluateLocalOperations ( uint32_t  level)
pure virtual

Method for evaluating the local operations.

Parameters
level_______________________

Implemented in YaoServerSharing, YaoSharing, ArithSharing< T >, YaoClientSharing, and BoolSharing.

virtual void Sharing::FinishCircuitLayer ( )
pure virtual

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

Implemented in YaoServerSharing, YaoSharing, ArithSharing< T >, YaoClientSharing, and BoolSharing.

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

Method for finishing the sharing setup.

Parameters
setupObject for setting up the share.

Implemented in YaoServerSharing, YaoSharing, ArithSharing< T >, YaoClientSharing, and BoolSharing.

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

Method for receiving the data.

Parameters
rsvbufreceiver buffer
rcvsizedata size

Implemented in YaoServerSharing, YaoSharing, ArithSharing< T >, YaoClientSharing, and BoolSharing.

virtual Circuit* Sharing::GetCircuitBuildRoutine ( )
pure virtual

Method for _________________________________

Implemented in YaoSharing, ArithSharing< T >, and BoolSharing.

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

Method for sending the data.

Parameters
sendbufsender buffer
bytesizedata size

Implemented in YaoServerSharing, YaoSharing, ArithSharing< T >, YaoClientSharing, and BoolSharing.

virtual uint32_t Sharing::GetMaxCommunicationRounds ( )
pure virtual

Method for finding the maximum communication rounds.

Implemented in YaoSharing, BoolSharing, and ArithSharing< T >.

virtual uint32_t Sharing::GetNumNonLinearOperations ( )
pure virtual

Method for finding the number of non-linear operations.

Implemented in YaoSharing, BoolSharing, and ArithSharing< T >.

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

Method for getting the output

Parameters
outputOutput

Implemented in YaoServerSharing, YaoSharing, BoolSharing, ArithSharing< T >, and YaoClientSharing.

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

Method for Instantiating a gate

Parameters
gateInput gate

Implemented in YaoServerSharing, YaoSharing, ArithSharing< T >, YaoClientSharing, and BoolSharing.

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

Method for performing the sharing setup.

Parameters
setupObject for setting up the share.

Implemented in YaoServerSharing, YaoSharing, ArithSharing< T >, YaoClientSharing, and BoolSharing.

virtual void Sharing::PrepareOnlinePhase ( )
pure virtual

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

Implemented in YaoServerSharing, YaoSharing, ArithSharing< T >, YaoClientSharing, and BoolSharing.

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

Method for preparing the sharing setup.

Parameters
setupObject for setting up the share.

Implemented in YaoServerSharing, YaoSharing, ArithSharing< T >, YaoClientSharing, and BoolSharing.

virtual void Sharing::PrintPerformanceStatistics ( )
pure virtual

Method for printing the performance statistics.

Implemented in BoolSharing, YaoSharing, and ArithSharing< T >.

virtual void Sharing::Reset ( )
pure virtual
virtual const char* Sharing::sharing_type ( )
pure virtual

Method for knowing the sharing type used.

Implemented in BoolSharing, ArithSharing< T >, YaoServerSharing, and YaoClientSharing.

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

Method for finding the used gate with the gateid.

Parameters
gateidId of the used gate.

Implemented in YaoServerSharing, YaoSharing, ArithSharing< T >, YaoClientSharing, and BoolSharing.

Member Data Documentation

crypto* Sharing::m_cCrypto
protected

Class that contains cryptographic routines

e_role Sharing::m_eRole
protected

Role object.

uint32_t Sharing::m_nSecParamBytes
protected

Number of security param bytes.

uint32_t Sharing::m_nShareBitLen
protected

Bit length of shared item.

ABYCircuit* Sharing::m_pCircuit
protected

Circuit pointer.

GATE* Sharing::m_pGates
protected

Pointer to array of Logical Gates.


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