emp-toolkit
garble_circuit.h
Go to the documentation of this file.
1 #ifndef GARBLE_CIRCUIT_H__
2 #define GARBLE_CIRCUIT_H__
3 #include "block.h"
4 #include "utils.h"
5 
6 enum RTCktOpt{on, off};
7 class GarbleCircuit { public:
8  uint64_t gid = 0;
9  bool (*is_public_ptr)(GarbleCircuit* gc, const block & b, int party);
11  block (*gc_and_ptr)(GarbleCircuit* gc, const block&a, const block&b);
12  block (*gc_xor_ptr)(GarbleCircuit*gc, const block&a, const block&b);
14 
15  bool is_public(const block & b, int party) {
16  return is_public_ptr(this, b, party);
17  }
18  block public_label(bool b) {
19  return public_label_ptr(this, b);
20  }
21  block gc_and(const block&a, const block&b) {
22  return gc_and_ptr(this, a, b);
23  }
24  block gc_xor(const block&a, const block&b) {
25  return gc_xor_ptr(this, a, b);
26  }
27  block gc_not(const block&a) {
28  return gc_not_ptr(this, a);
29  }
30  static block make_delta(const block & a) {
31  return _mm_or_si128(makeBlock(0L, 1L), a);
32  }
33 };
34 #endif// GARBLE_CIRCUIT_H__
static block make_delta(const block &a)
Definition: garble_circuit.h:30
__m128i block
Definition: block.h:8
block gc_xor(const block &a, const block &b)
Definition: garble_circuit.h:24
block public_label(bool b)
Definition: garble_circuit.h:18
uint64_t gid
Definition: garble_circuit.h:8
block(* gc_and_ptr)(GarbleCircuit *gc, const block &a, const block &b)
Definition: garble_circuit.h:11
#define makeBlock(X, Y)
Definition: block.h:69
block(* public_label_ptr)(GarbleCircuit *gc, bool b)
Definition: garble_circuit.h:10
RTCktOpt
Definition: garble_circuit.h:6
Definition: garble_circuit.h:6
Definition: garble_circuit.h:6
block(* gc_not_ptr)(GarbleCircuit *gc, const block &a)
Definition: garble_circuit.h:13
block(* gc_xor_ptr)(GarbleCircuit *gc, const block &a, const block &b)
Definition: garble_circuit.h:12
bool is_public(const block &b, int party)
Definition: garble_circuit.h:15
block gc_not(const block &a)
Definition: garble_circuit.h:27
block gc_and(const block &a, const block &b)
Definition: garble_circuit.h:21
Definition: garble_circuit.h:7
bool(* is_public_ptr)(GarbleCircuit *gc, const block &b, int party)
Definition: garble_circuit.h:9
int party
Definition: input-check-malicious.cpp:12