]> git.codecow.com Git - libnemo.git/commitdiff
Use extra term to make mod and carry process a little more clear.
authorChris Duncan <chris@zoso.dev>
Thu, 14 Aug 2025 15:23:33 +0000 (08:23 -0700)
committerChris Duncan <chris@zoso.dev>
Thu, 14 Aug 2025 15:23:33 +0000 (08:23 -0700)
src/lib/crypto/nano-nacl.ts

index 9a0a2eddb6045887bf03569a6a9746f3be808649..04c17f9bd77ff21d1965f725652471109e098b32 100644 (file)
@@ -301,13 +301,14 @@ export class NanoNaCl {
        ])\r
 \r
        static modL (r: Uint8Array, x: BigInt64Array): void {\r
-               let c: bigint, v: bigint\r
+               let c: bigint, t: bigint, v: bigint\r
                for (let i = 63; i >= 32; --i) {\r
                        c = 0n\r
                        for (let j = i - 32, k = i - 12; j < k; j++) {\r
-                               x[j] += c - 16n * x[i] * this.L[j - (i - 32)]\r
-                               c = (x[j] + 128n) / 256n\r
-                               x[j] -= c * 256n\r
+                               t = 16n * x[i] * this.L[j - (i - 32)]\r
+                               v = x[j] + c - t\r
+                               c = (v + 128n) / 256n\r
+                               x[j] = v - (c * 256n)\r
                        }\r
                        x[i - 12] += c\r
                        x[i] = 0n\r