ABY Framework  1.0
Arithmetic Bool Yao Framework
 All Classes Files Functions Variables Enumerations Enumerator Macros
Public Member Functions | List of all members
BooleanCircuit Class Reference

#include <booleancircuits.h>

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

Public Member Functions

 BooleanCircuit (ABYCircuit *aby, e_role myrole, e_sharing context)
 
void Init ()
 
void Cleanup ()
 
void Reset ()
 
uint32_t PutANDGate (uint32_t left, uint32_t right)
 
vector< uint32_t > PutANDGate (vector< uint32_t > inleft, vector< uint32_t > inright)
 
sharePutANDGate (share *ina, share *inb)
 
uint32_t PutVectorANDGate (uint32_t choiceinput, uint32_t vectorinput)
 
uint32_t PutXORGate (uint32_t left, uint32_t right)
 
vector< uint32_t > PutXORGate (vector< uint32_t > inleft, vector< uint32_t > inright)
 
sharePutXORGate (share *ina, share *inb)
 
uint32_t PutORGate (uint32_t a, uint32_t b)
 
sharePutORGate (share *a, share *b)
 
vector< uint32_t > PutORGate (vector< uint32_t > a, vector< uint32_t > b)
 
uint32_t PutINGate (uint32_t nvals, e_role src)
 
template<class T >
uint32_t PutINGate (uint32_t nvals, T val)
 
uint32_t PutINGate (uint32_t nvals, uint64_t val, e_role role)
 
uint32_t PutINGate (uint32_t ninvals, uint32_t *val, e_role role)
 
sharePutINGate (uint32_t nvals, uint64_t val, uint32_t bitlen, e_role role)
 
sharePutINGate (uint32_t nvals, uint32_t *val, uint32_t bitlen, e_role role)
 
sharePutINGate (uint32_t nvals, uint8_t *val, uint32_t bitlen, e_role role)
 
uint32_t PutOUTGate (uint32_t parent, e_role dst)
 
vector< uint32_t > PutOUTGate (vector< uint32_t > parents, e_role dst)
 
sharePutOUTGate (share *parent, e_role dst)
 
sharePutCONSGate (uint32_t nvals, UGATE_T val, uint32_t bitlen)
 
sharePutCONSGate (uint32_t nvals, uint32_t *val, uint32_t bitlen)
 
sharePutCONSGate (uint32_t nvals, uint8_t *val, uint32_t bitlen)
 
uint32_t PutConstantGate (UGATE_T val, uint32_t nvals=1)
 
uint32_t GetNumB2YGates ()
 
uint32_t GetNumA2YGates ()
 
int GetNumANDGates ()
 
int GetANDs (non_lin_vec_ctx *&inptr)
 
sharePutMULGate (share *ina, share *inb)
 
sharePutGEGate (share *ina, share *inb)
 
sharePutEQGate (share *ina, share *inb)
 
sharePutMUXGate (share *ina, share *inb, share *sel)
 
vector< uint32_t > PutMulGate (vector< uint32_t > a, vector< uint32_t > b, uint32_t resbitlen)
 
vector< uint32_t > PutAddGate (vector< uint32_t > left, vector< uint32_t > right, BOOL bCarry=FALSE)
 
sharePutADDGate (share *ina, share *inb)
 
vector< uint32_t > PutSizeOptimizedAddGate (vector< uint32_t > left, vector< uint32_t > right, BOOL bCarry=FALSE)
 
vector< uint32_t > PutDepthOptimizedAddGate (vector< uint32_t > lefta, vector< uint32_t > right, BOOL bCARRY=FALSE)
 
vector< uint32_t > PutSUBGate (vector< uint32_t > a, vector< uint32_t > b)
 
sharePutSUBGate (share *ina, share *inb)
 
vector< uint32_t > PutWideAddGate (vector< vector< uint32_t > > ins, uint32_t resbitlen)
 
uint32_t PutGEGate (vector< uint32_t > a, vector< uint32_t > b)
 
uint32_t PutSizeOptimizedGEGate (vector< uint32_t > a, vector< uint32_t > b)
 
uint32_t PutDepthOptimizedGEGate (vector< uint32_t > a, vector< uint32_t > b)
 
uint32_t PutEQGate (vector< uint32_t > a, vector< uint32_t > b)
 
sharePutANDVecGate (share *ina, share *inb)
 
vector< uint32_t > PutMUXGate (vector< uint32_t > a, vector< uint32_t > b, uint32_t s, BOOL vecand=false)
 
vector< uint32_t > PutVecANDMUXGate (vector< uint32_t > a, vector< uint32_t > b, vector< uint32_t > s)
 
uint32_t PutVecANDMUXGate (uint32_t a, uint32_t b, uint32_t s)
 
uint32_t PutWideGate (e_gatetype type, vector< uint32_t > ins)
 
vector< vector< uint32_t > > PutCondSwapGate (vector< uint32_t > a, vector< uint32_t > b, uint32_t s, BOOL vectorized)
 
vector< uint32_t > PutELM0Gate (vector< uint32_t > val, uint32_t b)
 
vector< uint32_t > LShift (vector< uint32_t > val, uint32_t pos, uint32_t nvals=1)
 
uint32_t PutIdxGate (uint32_t r, uint32_t maxidx)
 
sharePutRepeaterGate (share *input, uint32_t nvals)
 
uint32_t PutRepeaterGate (uint32_t input, uint32_t nvals)
 
uint32_t PutCombinerGate (vector< uint32_t > &input)
 
uint32_t PutCombineAtPosGate (vector< uint32_t > &input, uint32_t pos)
 
uint32_t PutSubsetGate (uint32_t input, uint32_t *posids, uint32_t nvals)
 
sharePutSubsetGate (share *input, uint32_t *posids, uint32_t nvals)
 
sharePutSplitterGate (share *input)
 
vector< uint32_t > PutSplitterGate (uint32_t input)
 
uint32_t PutCallbackGate (vector< uint32_t > in, uint32_t rounds, void(*callback)(GATE *, void *), void *infos, uint32_t nvals)
 
sharePutCallbackGate (share *in, uint32_t rounds, void(*callback)(GATE *, void *), void *infos, uint32_t nvals)
 
sharePutY2BGate (share *ina)
 
sharePutB2YGate (share *ina)
 
uint32_t PutY2BCONVGate (uint32_t parentid)
 
uint32_t PutB2YCONVGate (uint32_t parentid)
 
vector< uint32_t > PutY2BCONVGate (vector< uint32_t > parentid)
 
vector< uint32_t > PutB2YCONVGate (vector< uint32_t > parentid)
 
vector< uint32_t > PutA2YCONVGate (vector< uint32_t > parentid)
 
sharePutA2YGate (share *ina)
 
sharePutB2AGate (share *ina)
 
uint32_t PutINVGate (uint32_t parentid)
 
vector< uint32_t > PutINVGate (vector< uint32_t > parentid)
 
sharePutINVGate (share *parent)
 
sharePutMinGate (share **a, uint32_t nvals)
 
vector< uint32_t > PutMinGate (vector< vector< uint32_t > > a)
 
void PutMinIdxGate (share **a, share **b, uint32_t nvals, share **minval_shr, share **minid_shr)
 
void PutMinIdxGate (vector< vector< uint32_t > > a, vector< vector< uint32_t > > idx, vector< uint32_t > &minval, vector< uint32_t > &minid)
 
- Public Member Functions inherited from Circuit
 Circuit (ABYCircuit *aby, e_sharing context, e_role myrole, uint32_t bitlen, e_circuit circ)
 
virtual ~Circuit ()
 
void Init ()
 
void Cleanup ()
 
void Reset ()
 
uint32_t GetShareBitLen ()
 
uint32_t GetMaxDepth ()
 
deque< uint32_t > GetLocalQueueOnLvl (uint32_t lvl)
 
deque< uint32_t > GetInteractiveQueueOnLvl (uint32_t lvl)
 
uint32_t GetNumLocalLayers ()
 
uint32_t GetNumInteractiveLayers ()
 
uint32_t GetNumInputBitsForParty (e_role party)
 
uint32_t GetNumOutputBitsForParty (e_role party)
 
deque< uint32_t > GetInputGatesForParty (e_role party)
 
deque< uint32_t > GetOutputGatesForParty (e_role party)
 
e_sharing GetContext ()
 
uint32_t GetNumGates ()
 
UGATE_T * GetOutputGateValue (uint32_t gateid)
 
uint32_t GetOutputGateValue (uint32_t gateid, UGATE_T *&outval)
 
template<class T >
void GetOutputGateValue (uint32_t gateid, T &val)
 
uint32_t GetNumVals (uint32_t gateid)
 
sharePutCombinerGate (share *ina)
 
sharePutSplitterGate (share *ina)
 
sharePutRepeaterGate (uint32_t nvals, share *ina)
 
template<class T >
uint32_t PutINGate (uint32_t nvals, T val)
 
template<class T >
uint32_t PutINGate (uint32_t nvals, T val, e_role role)
 
e_circuit GetCircuitType ()
 

Additional Inherited Members

- Protected Member Functions inherited from Circuit
void UpdateInteractiveQueue (share *gateid)
 
void UpdateLocalQueue (share *gateid)
 
- Protected Attributes inherited from Circuit
ABYCircuitm_cCircuit
 
GATEm_pGates
 
e_sharing m_eContext
 
e_circuit m_eCirctype
 
e_role m_eMyRole
 
uint32_t m_nShareBitLen
 
uint32_t m_nMaxDepth
 
vector< deque< uint32_t > > m_vLocalQueueOnLvl
 
vector< deque< uint32_t > > m_vInteractiveQueueOnLvl
 
vector< deque< uint32_t > > m_vInputGates
 
vector< deque< uint32_t > > m_vOutputGates
 
vector< uint32_t > m_vInputBits
 
vector< uint32_t > m_vOutputBits
 
uint32_t m_nMULs
 
uint32_t m_nCONVGates
 
uint32_t m_nGates
 
uint32_t m_nRoundsAND
 
uint32_t m_nRoundsXOR
 
vector< uint32_t > m_nRoundsIN
 
vector< uint32_t > m_nRoundsOUT
 
const deque< uint32_t > EMPTYQUEUE
 

Detailed Description

BooleanCircuit class.


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