arnaucube
arnaucube/circomPublic Self-hosted repository
circom/circuits/sha256/sigmaplus.circom
circuits/sha256/sigmaplus.circomRaw
 1include "binsum.circom"
 2include "sigma.circom"
 3
 4template SigmaPlus() {
 5    signal input in2[32];
 6    signal input in7[32];
 7    signal input in15[32];
 8    signal input in16[32];
 9    signal output out[32];
10
11    component sum = BinSum(32, 4);
12    component sigma1 = SmallSigma(17,19,10);
13    component sigma0 = SmallSigma(7, 18, 3);
14
15    for (var k=0; k<32; k++) {
16        sigma1.in[k] <== in2[k];
17        sigma0.in[k] <== in15[k];
18
19        sum.in[0][k] <== sigma1.out[k];
20        sum.in[1][k] <== in7[k];
21        sum.in[2][k] <== sigma0.out[k];
22        sum.in[3][k] <== in16[k];
23
24        out[k] <== sum.out[k];
25    }
26}