From c24d7cae3296f06f4043e833f0e5f9f53c49ff17 Mon Sep 17 00:00:00 2001 From: Chris Duncan Date: Wed, 13 Aug 2025 14:45:22 -0700 Subject: [PATCH] Refactor method for bit shift declaration and modulo usage. --- src/lib/crypto/nano-nacl.ts | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/lib/crypto/nano-nacl.ts b/src/lib/crypto/nano-nacl.ts index 5370882..c45b019 100644 --- a/src/lib/crypto/nano-nacl.ts +++ b/src/lib/crypto/nano-nacl.ts @@ -48,13 +48,15 @@ export class NanoNaCl { } static car25519 (o: BigInt64Array): void { - let v: bigint, c: bigint = 1n + let v: bigint + let c: bigint = 0n + let s: bigint = 1n << 16n for (let i = 0; i < 16; i++) { - v = o[i] + c + 65535n - c = v / 65536n - o[i] = v - c * 65536n + v = o[i] + c + s + o[i] = v % s + c = v / s - 1n } - o[0] += 38n * (c - 1n) + o[0] += 38n * c } static inv25519 (o: BigInt64Array, i: BigInt64Array): void { @@ -138,7 +140,8 @@ export class NanoNaCl { } static Multiply (o: BigInt64Array, a: BigInt64Array, b: BigInt64Array): void { - let v: bigint, c: bigint + let v: bigint + let c: bigint const s: bigint = 1n << 16n const t: BigInt64Array = new BigInt64Array(31) t.fill(0n) @@ -178,7 +181,8 @@ export class NanoNaCl { } static Square (o: BigInt64Array, a: BigInt64Array): void { - let v: bigint, c: bigint + let v: bigint + let c: bigint const s: bigint = 1n << 16n const t: BigInt64Array = new BigInt64Array(31) t.fill(0n) -- 2.47.3