From: Chris Duncan Date: Thu, 14 Aug 2025 15:23:33 +0000 (-0700) Subject: Use extra term to make mod and carry process a little more clear. X-Git-Tag: v0.10.5~41^2~96 X-Git-Url: https://git.codecow.com/?a=commitdiff_plain;h=b9a4b545b225db6cba77e68c331e866a9a4363dc;p=libnemo.git Use extra term to make mod and carry process a little more clear. --- diff --git a/src/lib/crypto/nano-nacl.ts b/src/lib/crypto/nano-nacl.ts index 9a0a2ed..04c17f9 100644 --- a/src/lib/crypto/nano-nacl.ts +++ b/src/lib/crypto/nano-nacl.ts @@ -301,13 +301,14 @@ export class NanoNaCl { ]) static modL (r: Uint8Array, x: BigInt64Array): void { - let c: bigint, v: bigint + let c: bigint, t: bigint, v: bigint for (let i = 63; i >= 32; --i) { c = 0n for (let j = i - 32, k = i - 12; j < k; j++) { - x[j] += c - 16n * x[i] * this.L[j - (i - 32)] - c = (x[j] + 128n) / 256n - x[j] -= c * 256n + t = 16n * x[i] * this.L[j - (i - 32)] + v = x[j] + c - t + c = (v + 128n) / 256n + x[j] = v - (c * 256n) } x[i - 12] += c x[i] = 0n