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.

45 lines
1.0 KiB

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(api, a, 28, 34, 39)
maj := Maj_t512(api, a, b, c)
return BinSum(api, 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];
// }
// }