arnaucube
arnaucube/gnark-plonky2-verifierPublic Self-hosted repository
sha scaffold
Jacob Jackson jacob@as-MacBook-Air.local
Mon, 03 Oct 2022 23:24:18 +0000
commit

bbab6412877c2ad554c7862ca1b38fa2ba041d8a

parent

eb72b54acdc61928315215b496ac48b0ecfb703a

2 files changed, 29 insertions(+), 0 deletions(-)

jump to
M cubic.go → cubic.go

@@ -22,6 +22,7 @@ "github.com/consensys/gnark-crypto/ecc"

"github.com/consensys/gnark/frontend/cs/r1cs" "github.com/consensys/gnark/backend/groth16" _ "gnark-ed25519/edwards_curve" + _ "gnark-ed25519/sha512" ) // Circuit defines a simple circuit
A sha512/ch.go

@@ -0,0 +1,28 @@

+package sha512 + +import ( + "github.com/consensys/gnark/frontend" +) + +func Ch_t512(api frontend.API, a, b, c [] frontend.Variable) ([] frontend.Variable) { + n := len(a) + if len(a) != n { panic("bad length") } + if len(b) != n { panic("bad length") } + if len(c) != n { panic("bad length") } + out := make([] frontend.Variable, n) + for k := 0; k < n; k++ { + out[k] = api.Add(api.Mul(a[k], api.Sub(b[k], c[k])), c[k]); + } + return out +} + +// template Ch_t512(n) { +// signal input a[n]; +// signal input b[n]; +// signal input c[n]; +// signal output out[n]; + +// for (var k=0; k<n; k++) { +// out[k] <== a[k] * (b[k]-c[k]) + c[k]; +// } +// }