gnark-plonky2-verifier/sha512/t1.go
sha512/t1.goRaw
1package sha512
2
3import (
4 "github.com/consensys/gnark/frontend"
5)
6
7
8func T1_512(api frontend.API, h, e, f, g, k, w []frontend.Variable) ([]frontend.Variable) {
9 if len(h) != 64 { panic("bad length") }
10 if len(e) != 64 { panic("bad length") }
11 if len(f) != 64 { panic("bad length") }
12 if len(g) != 64 { panic("bad length") }
13 if len(k) != 64 { panic("bad length") }
14 if len(w) != 64 { panic("bad length") }
15
16 ch := Ch_t512(e, f, g)
17 bigsigma1 := BigSigma512(e, 14, 18, 41)
18
19 return BinSum(h, bigsigma1, ch, k, w)
20}
21
22// template T1_512() {
23// signal input h[64];
24// signal input e[64];
25// signal input f[64];
26// signal input g[64];
27// signal input k[64];
28// signal input w[64];
29// signal output out[64];
30
31// var ki;
32
33// component ch = Ch_t512(64);
34// component bigsigma1 = BigSigma512(14, 18, 41);
35
36// for (ki=0; ki<64; ki++) {
37// bigsigma1.in[ki] <== e[ki];
38// ch.a[ki] <== e[ki];
39// ch.b[ki] <== f[ki];
40// ch.c[ki] <== g[ki];
41// }
42
43// component sum = BinSum(64, 5);
44// for (ki=0; ki<64; ki++) {
45// sum.in[0][ki] <== h[ki];
46// sum.in[1][ki] <== bigsigma1.out[ki];
47// sum.in[2][ki] <== ch.out[ki];
48// sum.in[3][ki] <== k[ki];
49// sum.in[4][ki] <== w[ki];
50// }
51
52// for (ki=0; ki<64; ki++) {
53// out[ki] <== sum.out[ki];
54// }
55// }