]> git.codecow.com Git - libnemo.git/commitdiff
Refactor method for bit shift declaration and modulo usage.
authorChris Duncan <chris@zoso.dev>
Wed, 13 Aug 2025 21:45:22 +0000 (14:45 -0700)
committerChris Duncan <chris@zoso.dev>
Wed, 13 Aug 2025 21:45:22 +0000 (14:45 -0700)
src/lib/crypto/nano-nacl.ts

index 53708829bc14805c52788ad2a9dc8f5de7e50239..c45b01924bb927d12c0e271534f7450d4da47c78 100644 (file)
@@ -48,13 +48,15 @@ export class NanoNaCl {
        }\r
 \r
        static car25519 (o: BigInt64Array): void {\r
-               let v: bigint, c: bigint = 1n\r
+               let v: bigint\r
+               let c: bigint = 0n\r
+               let s: bigint = 1n << 16n\r
                for (let i = 0; i < 16; i++) {\r
-                       v = o[i] + c + 65535n\r
-                       c = v / 65536n\r
-                       o[i] = v - c * 65536n\r
+                       v = o[i] + c + s\r
+                       o[i] = v % s\r
+                       c = v / s - 1n\r
                }\r
-               o[0] += 38n * (c - 1n)\r
+               o[0] += 38n * c\r
        }\r
 \r
        static inv25519 (o: BigInt64Array, i: BigInt64Array): void {\r
@@ -138,7 +140,8 @@ export class NanoNaCl {
        }\r
 \r
        static Multiply (o: BigInt64Array, a: BigInt64Array, b: BigInt64Array): void {\r
-               let v: bigint, c: bigint\r
+               let v: bigint\r
+               let c: bigint\r
                const s: bigint = 1n << 16n\r
                const t: BigInt64Array = new BigInt64Array(31)\r
                t.fill(0n)\r
@@ -178,7 +181,8 @@ export class NanoNaCl {
        }\r
 \r
        static Square (o: BigInt64Array, a: BigInt64Array): void {\r
-               let v: bigint, c: bigint\r
+               let v: bigint\r
+               let c: bigint\r
                const s: bigint = 1n << 16n\r
                const t: BigInt64Array = new BigInt64Array(31)\r
                t.fill(0n)\r