From: Chris Duncan Date: Sun, 3 Aug 2025 07:27:06 +0000 (-0700) Subject: Subarray to eliminate a copy. X-Git-Tag: v0.10.5~46^2~34 X-Git-Url: https://git.codecow.com/?a=commitdiff_plain;h=10e79d4a22487324352e1652be41fb7b786cde69;p=libnemo.git Subarray to eliminate a copy. --- diff --git a/src/lib/nano-nacl.ts b/src/lib/nano-nacl.ts index 51efcb4..52c6abd 100644 --- a/src/lib/nano-nacl.ts +++ b/src/lib/nano-nacl.ts @@ -78,7 +78,7 @@ export class NanoNaCl { let b: number const m: Float64Array = this.gf() const t: Float64Array = this.gf() - t.set(n.slice(0, 16), 0) + t.set(n.subarray(0, 16), 0) this.car25519(t) this.car25519(t) this.car25519(t) @@ -177,7 +177,7 @@ export class NanoNaCl { static inv25519 (o: Float64Array, i: Float64Array): void { const c: Float64Array = new Float64Array(16) - c.set(i.slice(0, 16), 0) + c.set(i.subarray(0, 16), 0) for (let a = 253; a >= 0; a--) { this.S(c, c) if (a !== 2 && a !== 4) { @@ -189,7 +189,7 @@ export class NanoNaCl { static pow2523 (o: Float64Array, i: Float64Array): void { const c: Float64Array = this.gf() - c.set(i.slice(0, 16), 0) + c.set(i.subarray(0, 16), 0) for (let a = 250; a >= 0; a--) { this.S(c, c) if (a !== 1) { @@ -307,7 +307,7 @@ export class NanoNaCl { static reduce (r: Uint8Array): void { let x = new Float64Array(64) - x.set(r.slice(0, 64), 0) + x.set(r.subarray(0, 64), 0) r.fill(0, 0, 64) this.modL(r, x) } @@ -397,8 +397,8 @@ export class NanoNaCl { if (this.unpackneg(q, pk)) return -1 - m.set(sm.slice(0, n), 0) - m.set(pk.slice(0, 32), 32) + m.set(sm.subarray(0, n), 0) + m.set(pk.subarray(0, 32), 32) const h = new Blake2b(64).update(m).digest() this.reduce(h) this.scalarmult(p, q, h) @@ -412,7 +412,7 @@ export class NanoNaCl { m.fill(0, 0, n) return -1 } - m.set(sm.slice(64, n + 64), 0) + m.set(sm.subarray(64, n + 64), 0) return n }