From 0e32995f26944e23fd22b7cbfea474e0c509aa4e Mon Sep 17 00:00:00 2001 From: Jordi Baylina Date: Tue, 16 Jun 2020 17:04:49 +0200 Subject: [PATCH] Fix Dataview Offsets --- src/groth16_prover.js | 2 +- src/misc.js | 2 +- src/powersoftau_utils.js | 2 +- src/zkey_export_bellman.js | 4 ++-- src/zkey_new.js | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/groth16_prover.js b/src/groth16_prover.js index 1a3e064..76579b9 100644 --- a/src/groth16_prover.js +++ b/src/groth16_prover.js @@ -104,7 +104,7 @@ async function buldABC(curve, zkey, witness, coeffs) { const sCoef = 4*3 + zkey.n8r; const elementsPerChunk = Math.floor(zkey.domainSize/concurrency); - const coeffsDV = new DataView(coeffs.buffer); + const coeffsDV = new DataView(coeffs.buffer, coeffs.byteOffset, coeffs.byteLength); const promises = []; const cutPoints = []; diff --git a/src/misc.js b/src/misc.js index cb26c65..f36d4ae 100644 --- a/src/misc.js +++ b/src/misc.js @@ -36,7 +36,7 @@ function log2( V ) function formatHash(b) { - const a = new DataView(b.buffer); + const a = new DataView(b.buffer, b.byteOffset, b.byteLength); let S = ""; for (let i=0; i<4; i++) { if (i>0) S += "\n"; diff --git a/src/powersoftau_utils.js b/src/powersoftau_utils.js index 26e98eb..f2d09e5 100644 --- a/src/powersoftau_utils.js +++ b/src/powersoftau_utils.js @@ -362,7 +362,7 @@ function keyFromBeacon(curve, challangeHash, beaconHash, numIterationsExp) { } } - const curHashV = new DataView(curHash.buffer); + const curHashV = new DataView(curHash.buffer, curHash.byteOffset, curHash.byteLength); const seed = []; for (let i=0; i<8; i++) { seed[i] = curHashV.getUint32(i*4, false); diff --git a/src/zkey_export_bellman.js b/src/zkey_export_bellman.js index 2f151e6..ffb85bb 100644 --- a/src/zkey_export_bellman.js +++ b/src/zkey_export_bellman.js @@ -117,7 +117,7 @@ module.exports = async function phase2exportMPCParams(zkeyName, mpcparamsName, } const buffSize = new Uint8Array(4); - const buffSizeV = new DataView(buffSize.buffer); + const buffSizeV = new DataView(buffSize.buffer, buffSize.byteOffset, buffSize.byteLength); buffSizeV.setUint32(0, buff.byteLength / sG, false); await fdMPCParams.write(buffSize); @@ -126,7 +126,7 @@ module.exports = async function phase2exportMPCParams(zkeyName, mpcparamsName, async function writeU32(n) { const buffSize = new Uint8Array(4); - const buffSizeV = new DataView(buffSize.buffer); + const buffSizeV = new DataView(buffSize.buffer, buffSize.byteOffset, buffSize.byteLength); buffSizeV.setUint32(0, n, false); await fdMPCParams.write(buffSize); diff --git a/src/zkey_new.js b/src/zkey_new.js index 26260fe..f26df77 100644 --- a/src/zkey_new.js +++ b/src/zkey_new.js @@ -471,7 +471,7 @@ module.exports = async function phase2new(r1csName, ptauName, zkeyName, verbose function hashU32(n) { const buff = new Uint8Array(4); - const buffV = new DataView(buff.buffer); + const buffV = new DataView(buff.buffer, buff.byteOffset, buff.byteLength); buffV.setUint32(0, n, false); csHasher.update(buff); }