circom/circuits/sha256/gates.circom
circuits/sha256/gates.circomRaw
1
2template XOR() {
3 signal input a;
4 signal input b;
5 signal output out;
6
7 out <== a + b - 2*a*b;
8}
9
10template AND() {
11 signal input a;
12 signal input b;
13 signal output out;
14
15 out <== a*b;
16}
17
18template OR() {
19 signal input a;
20 signal input b;
21 signal output out;
22
23 out <== a + b - a*b;
24}
25
26template NOT() {
27 signal input in;
28 signal output out;
29
30 out <== 1 + in - 2*in;
31}
32
33template NAND() {
34 signal input a;
35 signal input b;
36 signal output out;
37
38 out <== 1 - a*b;
39}
40
41template NOR() {
42 signal input a;
43 signal input b;
44 signal output out;
45
46 out <== a*b + 1 - a - b;
47}
48
49