arnaucube
arnaucube/circomPublic Self-hosted repository
Readme, License Fixes and another test added
Jordi Baylina jordi@baylina.cat
Wed, 05 Sep 2018 19:46:24 +0200
commit

296defda852d377f9deebef6dfa6ba3f117753ea

parent

276a28c73e9291ba10a6d66ad19e6057820ec45a

D circuits/barry.jaz

@@ -1,43 +0,0 @@

- - - -template AND() { - signal input a; - signal input b; - signal output c; - - c <== a*b; -} - -template AND3() { - signal input in1; - signal input in2; - signal input in3; - signal output out; - - component and1 = AND(); - component and2 = AND(); - - in1 ==> and1.a; - in2 ==> and1.b; - in3 ==> and2.a; - and1.c ==> and2.b; - and2.c ==> out; -} - -template ToBin() { - signal input in; - signal output out[32]; - - var lc = 0; - - for (var i=0; i<32; i++) { - out[i] <-- (in >> i) & 1; - lc = lc + out[i] * 2**i; - out[i]*(out[i]-1) === 0; - } - - lc === in; -} - -component main = ToBin();
D circuits/jose.jaz

@@ -1,11 +0,0 @@

-template AND() { - signal input s1; - signal input s2; - signal output s3; - - s3 <== s1*s2; - s1*(s1-1) === 0; - s2*(s2-1) === 0; -} - -component main = AND();
M circuits/sha256/constants_test.jaz → test/circuits/constants_test.circom

@@ -1,4 +1,4 @@

-include "constants.jaz" +include "../../circuits/sha256/constants.circom" template A() { signal input in;
D circuits/sha256/input_h0.json

@@ -1,3 +0,0 @@

-{ - "in": "0xd807aa98" -}
D test/circuits/constants_test.jaz

@@ -1,18 +0,0 @@

-include "../../circuits/sha256/constants.jaz" - -template A() { - signal input in; - component h0; - h0 = K(8); - - var lc = 0; - var e = 1; - for (var i=0; i<32; i++) { - lc = lc + e*h0.out[i]; - e *= 2; - } - - lc === in; -} - -component main = A();
M test/circuits/sum_test.jaz → test/circuits/sum_test.circom

@@ -1,5 +1,5 @@

-include "bitify.jaz" -include "binsum.jaz" +include "../../circuits/sha256/bitify.circom" +include "../../circuits/sha256/binsum.circom" template A() { signal private input a;
M test/sha256.js → test/sha256.js

@@ -9,7 +9,7 @@

describe("SHA256 test", () => { it("Should create a constant circuit", async () => { - const cirDef = await compiler(path.join(__dirname, "circuits", "constants_test.jaz")); + const cirDef = await compiler(path.join(__dirname, "circuits", "constants_test.circom")); assert.equal(cirDef.nVars, 2); const circuit = new zkSnark.Circuit(cirDef);

@@ -19,4 +19,18 @@

assert(witness[0].equals(zkSnark.bigInt(1))); assert(witness[1].equals(zkSnark.bigInt("0xd807aa98"))); }); + it("Should create a sum circuit", async () => { + + const cirDef = await compiler(path.join(__dirname, "circuits", "sum_test.circom")); + assert.equal(cirDef.nVars, 101); + + const circuit = new zkSnark.Circuit(cirDef); + + const witness = circuit.calculateWitness({ "a": "111", "b": "222" }); + + assert(witness[0].equals(zkSnark.bigInt(1))); + assert(witness[1].equals(zkSnark.bigInt("333"))); + }); + + });