arnaucube
arnaucube/circomlibPublic Self-hosted repository
Merge pull request #10 from kobigurk/fix_babyjubjub

fixes babyjubjub addition to use generic bigint interfaces
Jordi Baylina jordi@baylina.cat
Sat, 11 May 2019 20:45:27 +0200
commit

e7c4a979a0ed2e92b615ee439243629b9bcb2a82

parent

efc77065e7db72afab2a8c0b7199cfc123cbbb32

1 files changed, 7 insertions(+), 1 deletions(-)

jump to
M src/babyjub.js → src/babyjub.js

@@ -22,8 +22,14 @@ const cta = bigInt("168700");

const d = bigInt("168696"); const res = []; - res[0] = bigInt((a[0]*b[1] + b[0]*a[1]) * bigInt(bigInt("1") + d*a[0]*b[0]*a[1]*b[1]).inverse(q)).affine(q); + + /* does the equivalent of: + res[0] = bigInt((a[0]*b[1] + b[0]*a[1]) * bigInt(bigInt("1") + d*a[0]*b[0]*a[1]*b[1]).inverse(q)).affine(q); res[1] = bigInt((a[1]*b[1] - cta*a[0]*b[0]) * bigInt(bigInt("1") - d*a[0]*b[0]*a[1]*b[1]).inverse(q)).affine(q); + */ + res[0] = bigInt((bigInt(a[0]).mul(b[1]).add(bigInt(b[0]).mul(a[1]))).mul(bigInt(bigInt("1").add(d.mul(a[0]).mul(b[0]).mul(a[1]).mul(b[1]))).inverse(q))).affine(q); + res[1] = bigInt((bigInt(a[1]).mul(b[1]).sub(cta.mul(a[0]).mul(b[0]))).mul(bigInt(bigInt("1").sub(d.mul(a[0]).mul(b[0]).mul(a[1]).mul(b[1]))).inverse(q))).affine(q); + return res; }