package sha512 import ( "github.com/consensys/gnark/frontend" ) func T1_512(api frontend.API, h, e, f, g, k, w []frontend.Variable) ([]frontend.Variable) { if len(h) != 64 { panic("bad length") } if len(e) != 64 { panic("bad length") } if len(f) != 64 { panic("bad length") } if len(g) != 64 { panic("bad length") } if len(k) != 64 { panic("bad length") } if len(w) != 64 { panic("bad length") } ch := Ch_t512(e, f, g) bigsigma1 := BigSigma512(e, 14, 18, 41) return BinSum(h, bigsigma1, ch, k, w) } // template T1_512() { // signal input h[64]; // signal input e[64]; // signal input f[64]; // signal input g[64]; // signal input k[64]; // signal input w[64]; // signal output out[64]; // var ki; // component ch = Ch_t512(64); // component bigsigma1 = BigSigma512(14, 18, 41); // for (ki=0; ki<64; ki++) { // bigsigma1.in[ki] <== e[ki]; // ch.a[ki] <== e[ki]; // ch.b[ki] <== f[ki]; // ch.c[ki] <== g[ki]; // } // component sum = BinSum(64, 5); // for (ki=0; ki<64; ki++) { // sum.in[0][ki] <== h[ki]; // sum.in[1][ki] <== bigsigma1.out[ki]; // sum.in[2][ki] <== ch.out[ki]; // sum.in[3][ki] <== k[ki]; // sum.in[4][ki] <== w[ki]; // } // for (ki=0; ki<64; ki++) { // out[ki] <== sum.out[ki]; // } // }