package sha512 import ( "github.com/consensys/gnark/frontend" ) func T2_512(api frontend.API, a, b, c []frontend.Variable) ([]frontend.Variable) { if len(a) != 64 { panic("bad length") } if len(b) != 64 { panic("bad length") } if len(c) != 64 { panic("bad length") } bigsigma0 := BigSigma512(a, 28, 34, 39) maj := Maj_t512(a, b, c) return BinSum(maj, bigsigma0) } // template T2_512() { // signal input a[64]; // signal input b[64]; // signal input c[64]; // signal output out[64]; // var k; // component bigsigma0 = BigSigma512(28, 34, 39); // component maj = Maj_t512(64); // for (k=0; k<64; k++) { // bigsigma0.in[k] <== a[k]; // maj.a[k] <== a[k]; // maj.b[k] <== b[k]; // maj.c[k] <== c[k]; // } // component sum = BinSum(64, 2); // for (k=0; k<64; k++) { // sum.in[0][k] <== bigsigma0.out[k]; // sum.in[1][k] <== maj.out[k]; // } // for (k=0; k<64; k++) { // out[k] <== sum.out[k]; // } // }