mirror of
https://github.com/arnaucube/circom.git
synced 2026-02-06 18:56:40 +01:00
First test added
This commit is contained in:
43
circuits/barry.jaz
Normal file
43
circuits/barry.jaz
Normal file
@@ -0,0 +1,43 @@
|
||||
|
||||
|
||||
|
||||
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();
|
||||
@@ -12,7 +12,7 @@ template H(x) {
|
||||
0x5be0cd19];
|
||||
|
||||
for (var i=0; i<32; i++) {
|
||||
out[i] = (c[x] >> i) & 1;
|
||||
out[i] <== (c[x] >> i) & 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,6 +30,6 @@ template K(x) {
|
||||
];
|
||||
|
||||
for (var i=0; i<32; i++) {
|
||||
out[i] = (c[x] >> i) & 1;
|
||||
out[i] <== (c[x] >> i) & 1;
|
||||
}
|
||||
}
|
||||
|
||||
18
circuits/sha256/constants_test.jaz
Normal file
18
circuits/sha256/constants_test.jaz
Normal file
@@ -0,0 +1,18 @@
|
||||
include "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();
|
||||
@@ -1,26 +0,0 @@
|
||||
include "bitify.jaz"
|
||||
include "binsum.jaz"
|
||||
|
||||
template A() {
|
||||
signal input a;
|
||||
signal input b;
|
||||
signal output out;
|
||||
|
||||
component n2ba = Num2Bits(32);
|
||||
component n2bb = Num2Bits(32);
|
||||
component sum = BinSum(32,2);
|
||||
component b2n = Bits2Num(32);
|
||||
|
||||
n2ba.in <== a;
|
||||
n2bb.in <== b;
|
||||
|
||||
for (var i=0; i<32; i++) {
|
||||
sum.in[0][i] <== n2ba.out[i];
|
||||
sum.in[1][i] <== n2bb.out[i];
|
||||
b2n.in[i] <== sum.out[i];
|
||||
}
|
||||
|
||||
out <== b2n.out;
|
||||
}
|
||||
|
||||
component main = A();
|
||||
Reference in New Issue
Block a user