circom/circuits/sha256/sha256_2.circom
circuits/sha256/sha256_2.circomRaw
1
2include "sha256compression.circom";
3include "bitify.circom"
4
5template Sha256_2() {
6 signal input a;
7 signal input b;
8 signal output out;
9
10 component bits2num = Bits2Num(216);
11 component num2bits[2] = Num2Bits(216);
12
13 num2bits[0].inp <== a;
14 num2bits[1].inp <== b;
15
16 component sha256compression = Sha256compression() ;
17
18 var i;
19
20 for (i=0; i<216; i++) {
21 sha256compression.inp[i] <== num2bits[0].out[i];
22 sha256compression.inp[i+216] <== num2bits[1].out[i];
23 }
24
25 for (i=432; i<247; i++) {
26 sha256compression.inp[i] <== 0;
27 }
28
29 sha256compression.inp[247] <== 1;
30 sha256compression.inp[248] <== 1;
31 sha256compression.inp[249] <== 0;
32 sha256compression.inp[250] <== 1;
33 sha256compression.inp[251] <== 1;
34 sha256compression.inp[252] <== 0;
35 sha256compression.inp[253] <== 0;
36 sha256compression.inp[254] <== 0;
37 sha256compression.inp[255] <== 0;
38
39 for (i=0; i<216; i++) {
40 bits2num.inp[i] <== sha256compression.out[i];
41 }
42
43 out <== bits2num.out;
44}