]> git.codecow.com Git - libnemo.git/commitdiff
Replace set method with builtin typed array methods.
authorChris Duncan <chris@zoso.dev>
Sun, 3 Aug 2025 21:57:20 +0000 (14:57 -0700)
committerChris Duncan <chris@zoso.dev>
Sun, 3 Aug 2025 21:57:20 +0000 (14:57 -0700)
src/lib/nano-nacl.ts

index ef9dc4d92ef30fd21cf0320abb0a60fd4bba420a..e16ea3aacd990ebe1e5bea859afde22486f965e1 100644 (file)
@@ -54,12 +54,6 @@ export class NanoNaCl {
                return this.vn(x, xi, y, yi, 32)\r
        }\r
 \r
-       static set25519 (r: Float64Array, a: Float64Array): void {\r
-               for (let i = 0; i < 16; i++) {\r
-                       r[i] = a[i] | 0\r
-               }\r
-       }\r
-\r
        static car25519 (o: Float64Array): void {\r
                let v, c = 1\r
                for (let i = 0; i < 16; i++) {\r
@@ -295,10 +289,10 @@ export class NanoNaCl {
        }\r
 \r
        static scalarmult (p: Float64Array[], q: Float64Array[], s: Uint8Array): void {\r
-               this.set25519(p[0], this.gf())\r
-               this.set25519(p[1], this.gf([1]))\r
-               this.set25519(p[2], this.gf([1]))\r
-               this.set25519(p[3], this.gf())\r
+               p[0].fill(0)\r
+               p[1].fill(0).set([1], 0)\r
+               p[2].fill(0).set([1], 0)\r
+               p[3].fill(0)\r
                for (let i = 255; i >= 0; --i) {\r
                        const b = (s[(i / 8) | 0] >> (i & 7)) & 1\r
                        this.cswap(p, q, b)\r
@@ -310,10 +304,10 @@ export class NanoNaCl {
 \r
        static scalarbase (p: Float64Array[], s: Uint8Array): void {\r
                const q: Float64Array[] = this.gf4()\r
-               this.set25519(q[0], this.X)\r
-               this.set25519(q[1], this.Y)\r
-               this.set25519(q[2], this.gf([1]))\r
-               this.set25519(q[3], this.XY)\r
+               q[0].set(this.X, 0)\r
+               q[1].set(this.Y, 0)\r
+               q[2].set([1], 0)\r
+               q[3].set(this.XY, 0)\r
                this.scalarmult(p, q, s)\r
        }\r
 \r
@@ -398,7 +392,7 @@ export class NanoNaCl {
                const den4: Float64Array = this.gf()\r
                const den6: Float64Array = this.gf()\r
 \r
-               this.set25519(r[2], this.gf([1]))\r
+               r[2].fill(0).set([1], 0)\r
                this.unpack25519(r[1], p)\r
                this.Square(num, r[1])\r
                this.Multiply(den, num, this.D)\r
@@ -426,7 +420,9 @@ export class NanoNaCl {
 \r
                if (this.neq25519(chk, num)) return -1\r
 \r
-               if (this.par25519(r[0]) === (p[31] >> 7)) this.Subtract(r[0], this.gf(), r[0])\r
+               if (this.par25519(r[0]) === (p[31] >> 7)) {\r
+                       this.Subtract(r[0], this.gf(), r[0])\r
+               }\r
                this.Multiply(r[3], r[0], r[1])\r
                return 0\r
        }\r