From 10d463a51272f1fbbf9dc8600460393fc44eab18 Mon Sep 17 00:00:00 2001 From: Arseniy Klempner Date: Thu, 21 Mar 2024 20:49:28 -0700 Subject: [PATCH] fix: use correct offset when converting commitment to bigint --- src/identity.ts | 2 +- src/utils/bytes.ts | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/identity.ts b/src/identity.ts index 06cd436..ecd64ca 100644 --- a/src/identity.ts +++ b/src/identity.ts @@ -14,7 +14,7 @@ export class IdentityCredential { const idNullifier = memKeys.subarray(32, 64); const idSecretHash = memKeys.subarray(64, 96); const idCommitment = memKeys.subarray(96); - const idCommitmentBigInt = buildBigIntFromUint8Array(idCommitment); + const idCommitmentBigInt = buildBigIntFromUint8Array(idCommitment, 96); return new IdentityCredential( idTrapdoor, diff --git a/src/utils/bytes.ts b/src/utils/bytes.ts index 000488c..279a2b3 100644 --- a/src/utils/bytes.ts +++ b/src/utils/bytes.ts @@ -61,9 +61,12 @@ export function writeUIntLE( * @param array: Uint8Array * @returns BigInt */ -export function buildBigIntFromUint8Array(array: Uint8Array): bigint { +export function buildBigIntFromUint8Array( + array: Uint8Array, + byteOffset: number = 0 +): bigint { const dataView = new DataView(array.buffer); - return dataView.getBigUint64(0, true); + return dataView.getBigUint64(byteOffset, true); } /**