Browse Source

Allow full poseidnon fix handle enable in the sigposeidon

master
Jordi Baylina 5 years ago
parent
commit
29e162383d
No known key found for this signature in database GPG Key ID: 7480C80C1BE43112
4 changed files with 6 additions and 3 deletions
  1. +2
    -2
      circuits/eddsaposeidon.circom
  2. +2
    -0
      index.js
  3. +1
    -1
      src/poseidon.js
  4. +1
    -0
      src/smt.js

+ 2
- 2
circuits/eddsaposeidon.circom

@ -47,7 +47,7 @@ template EdDSAPoseidonVerifier() {
snum2bits.out[i] ==> compConstant.in[i]; snum2bits.out[i] ==> compConstant.in[i];
} }
compConstant.in[253] <== 0; compConstant.in[253] <== 0;
compConstant.out === 0;
compConstant.out*enabled === 0;
// Calculate the h = H(R,A, msg) // Calculate the h = H(R,A, msg)
@ -79,7 +79,7 @@ template EdDSAPoseidonVerifier() {
// We check that A is not zero. // We check that A is not zero.
component isZero = IsZero(); component isZero = IsZero();
isZero.in <== dbl3.x; isZero.in <== dbl3.x;
isZero.out === 0;
isZero.out*enabled === 0;
component mulAny = EscalarMulAny(254); component mulAny = EscalarMulAny(254);
for (i=0; i<254; i++) { for (i=0; i<254; i++) {

+ 2
- 0
index.js

@ -4,3 +4,5 @@ exports.mimc7 = require("./src/mimc7");
exports.mimcsponge = require("./src/mimcsponge"); exports.mimcsponge = require("./src/mimcsponge");
exports.babyJub = require("./src/babyjub"); exports.babyJub = require("./src/babyjub");
exports.pedersenHash = require("./src/pedersenHash"); exports.pedersenHash = require("./src/pedersenHash");
exports.SMT = require("./src/smt");
exports.poseidon = require("./src/poseidon");

+ 1
- 1
src/poseidon.js

@ -95,7 +95,7 @@ exports.createHash = (t, nRoundsF, nRoundsP, seed) => {
const M = exports.getMatrix(t, seed, nRoundsF + nRoundsP); const M = exports.getMatrix(t, seed, nRoundsF + nRoundsP);
return function(inputs) { return function(inputs) {
let state = []; let state = [];
assert(inputs.length < t);
assert(inputs.length <= t);
assert(inputs.length > 0); assert(inputs.length > 0);
for (let i=0; i<inputs.length; i++) state[i] = bigInt(inputs[i]); for (let i=0; i<inputs.length; i++) state[i] = bigInt(inputs[i]);
for (let i=inputs.length; i<t; i++) state[i] = F.zero; for (let i=inputs.length; i<t; i++) state[i] = F.zero;

+ 1
- 0
src/smt.js

@ -309,3 +309,4 @@ async function newMemEmptyTrie() {
module.exports.loadFromFile = loadFromFile; module.exports.loadFromFile = loadFromFile;
module.exports.newMemEmptyTrie = newMemEmptyTrie; module.exports.newMemEmptyTrie = newMemEmptyTrie;
module.exports.SMT = SMT;

Loading…
Cancel
Save