emp-toolkit
backend.h
Go to the documentation of this file.
1 #ifndef BACKEND_H__
2 #define BACKEND_H__
3 #include <pthread.h>
4 #include "garble_circuit.h"
5 #include "block.h"
6 #include "config.h"
7 
8 class Backend { public:
9  int cur_party;
10  void (*Feed_internal)(Backend* be, int, block * label, const bool*, int length);
11  void (*Reveal_internal)(Backend* be, bool*, int, const block * label, int length);
12  void Feed(block * lbls, int party, const bool* b, int nel) {
13  this->Feed_internal(this, party, lbls, b, nel);
14  }
15  void Reveal(bool*out, int party, const block *lbls, int nel) {
16  this->Reveal_internal(this, out, party, lbls, nel);
17  }
18  Backend(int party) {
19  cur_party = party;
20  }
21 };
22 
23 #ifdef THREADING
24 extern __thread Backend* local_backend;
25 extern __thread GarbleCircuit* local_gc;
26 #else
27 extern Backend* local_backend;
28 extern GarbleCircuit* local_gc;
29 #endif
30 
31 #endif// BACKEND_H__
int cur_party
Definition: backend.h:9
Backend * local_backend
Definition: backend.cpp:7
__m128i block
Definition: block.h:8
Backend(int party)
Definition: backend.h:18
void Reveal(bool *out, int party, const block *lbls, int nel)
Definition: backend.h:15
void Feed(block *lbls, int party, const bool *b, int nel)
Definition: backend.h:12
GarbleCircuit * local_gc
Definition: backend.cpp:8
void(* Reveal_internal)(Backend *be, bool *, int, const block *label, int length)
Definition: backend.h:11
Definition: backend.h:8
void(* Feed_internal)(Backend *be, int, block *label, const bool *, int length)
Definition: backend.h:10
Definition: garble_circuit.h:7
int party
Definition: input-check-malicious.cpp:12