]> git.codecow.com Git - libnemo.git/commitdiff
Subarray to eliminate a copy.
authorChris Duncan <chris@zoso.dev>
Sun, 3 Aug 2025 07:27:06 +0000 (00:27 -0700)
committerChris Duncan <chris@zoso.dev>
Sun, 3 Aug 2025 07:27:06 +0000 (00:27 -0700)
src/lib/nano-nacl.ts

index 51efcb4e618d50ae1e8b791d0467dc52e38143cf..52c6abdc6bad9faabf0690afbf51c97e626976ed 100644 (file)
@@ -78,7 +78,7 @@ export class NanoNaCl {
                let b: number\r
                const m: Float64Array = this.gf()\r
                const t: Float64Array = this.gf()\r
-               t.set(n.slice(0, 16), 0)\r
+               t.set(n.subarray(0, 16), 0)\r
                this.car25519(t)\r
                this.car25519(t)\r
                this.car25519(t)\r
@@ -177,7 +177,7 @@ export class NanoNaCl {
 \r
        static inv25519 (o: Float64Array, i: Float64Array): void {\r
                const c: Float64Array = new Float64Array(16)\r
-               c.set(i.slice(0, 16), 0)\r
+               c.set(i.subarray(0, 16), 0)\r
                for (let a = 253; a >= 0; a--) {\r
                        this.S(c, c)\r
                        if (a !== 2 && a !== 4) {\r
@@ -189,7 +189,7 @@ export class NanoNaCl {
 \r
        static pow2523 (o: Float64Array, i: Float64Array): void {\r
                const c: Float64Array = this.gf()\r
-               c.set(i.slice(0, 16), 0)\r
+               c.set(i.subarray(0, 16), 0)\r
                for (let a = 250; a >= 0; a--) {\r
                        this.S(c, c)\r
                        if (a !== 1) {\r
@@ -307,7 +307,7 @@ export class NanoNaCl {
 \r
        static reduce (r: Uint8Array): void {\r
                let x = new Float64Array(64)\r
-               x.set(r.slice(0, 64), 0)\r
+               x.set(r.subarray(0, 64), 0)\r
                r.fill(0, 0, 64)\r
                this.modL(r, x)\r
        }\r
@@ -397,8 +397,8 @@ export class NanoNaCl {
 \r
                if (this.unpackneg(q, pk)) return -1\r
 \r
-               m.set(sm.slice(0, n), 0)\r
-               m.set(pk.slice(0, 32), 32)\r
+               m.set(sm.subarray(0, n), 0)\r
+               m.set(pk.subarray(0, 32), 32)\r
                const h = new Blake2b(64).update(m).digest()\r
                this.reduce(h)\r
                this.scalarmult(p, q, h)\r
@@ -412,7 +412,7 @@ export class NanoNaCl {
                        m.fill(0, 0, n)\r
                        return -1\r
                }\r
-               m.set(sm.slice(64, n + 64), 0)\r
+               m.set(sm.subarray(64, n + 64), 0)\r
                return n\r
        }\r
 \r