arnaucube
arnaucube/circomPublic Self-hosted repository
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}