You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.4 KiB

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];
// }
// }