return (1 & ((d - 1) >>> 8)) - 1\r
}\r
\r
- static pow2523 (o: BigInt64Array, i: BigInt64Array): void {\r
+ static pow2523 (out: BigInt64Array, i: BigInt64Array): void {\r
const c: BigInt64Array = new BigInt64Array(16)\r
c.set(i.subarray(0, 16), 0)\r
for (let a = 0; a < 249; a++) {\r
this.Square(c, c)\r
this.Square(c, c)\r
this.Multiply(c, c, i)\r
- o.set(c, 0)\r
+ out.set(c, 0)\r
}\r
\r
- static car25519 (o: BigInt64Array): void {\r
+ static car25519 (out: BigInt64Array): void {\r
let v, c, s = 1n << 16n\r
c = 0n\r
for (let i = 0; i < 16; i++) {\r
- v = o[i] + c + s\r
- o[i] = v % s\r
+ v = out[i] + c + s\r
+ out[i] = v % s\r
c = v / s - 1n\r
}\r
- o[0] += 38n * c\r
+ out[0] += 38n * c\r
}\r
\r
- static inv25519 (o: BigInt64Array, i: BigInt64Array): void {\r
+ static inv25519 (out: BigInt64Array, i: BigInt64Array): void {\r
const c: BigInt64Array = new BigInt64Array(16)\r
c.set(i.subarray(0, 16), 0)\r
for (let a = 253; a >= 0; a--) {\r
this.Multiply(c, c, i)\r
}\r
}\r
- o.set(c, 0)\r
+ out.set(c, 0)\r
}\r
\r
static neq25519 (a: BigInt64Array, b: BigInt64Array): number {\r
return this.#vn(c, 0, d, 0, 32)\r
}\r
\r
- static pack25519 (o: Uint8Array, n: BigInt64Array): void {\r
+ static pack25519 (out: Uint8Array, n: BigInt64Array): void {\r
let b: bigint\r
const m: BigInt64Array = new BigInt64Array(16)\r
const t: BigInt64Array = new BigInt64Array(16)\r
this.sel25519(t, m, 1n - b)\r
}\r
for (let i = 0; i < 16; i++) {\r
- o[2 * i] = Number(t[i] & 0xffn)\r
- o[2 * i + 1] = Number(t[i] >> 8n)\r
+ out[2 * i] = Number(t[i] & 0xffn)\r
+ out[2 * i + 1] = Number(t[i] >> 8n)\r
}\r
}\r
\r
}\r
}\r
\r
- static unpack25519 (o: BigInt64Array, n: Uint8Array): void {\r
+ static unpack25519 (out: BigInt64Array, n: Uint8Array): void {\r
for (let i = 0; i < 16; i++) {\r
- o[i] = BigInt(n[2 * i]) + (BigInt(n[2 * i + 1]) << 8n)\r
+ out[i] = BigInt(n[2 * i]) + (BigInt(n[2 * i + 1]) << 8n)\r
}\r
- o[15] &= (1n << 15n) - 1n\r
+ out[15] &= (1n << 15n) - 1n\r
}\r
\r
- static Add (o: BigInt64Array, a: BigInt64Array, b: BigInt64Array): void {\r
+ static Add (out: BigInt64Array, a: BigInt64Array, b: BigInt64Array): void {\r
for (let i = 0; i < 16; i++) {\r
- o[i] = a[i] + b[i]\r
+ out[i] = a[i] + b[i]\r
}\r
}\r
\r
- static Subtract (o: BigInt64Array, a: BigInt64Array, b: BigInt64Array): void {\r
+ static Subtract (out: BigInt64Array, a: BigInt64Array, b: BigInt64Array): void {\r
for (let i = 0; i < 16; i++) {\r
- o[i] = a[i] - b[i]\r
+ out[i] = a[i] - b[i]\r
}\r
}\r
\r
- static Multiply (o: BigInt64Array, a: BigInt64Array, b: BigInt64Array): void {\r
+ static Multiply (out: BigInt64Array, a: BigInt64Array, b: BigInt64Array): void {\r
let v, c, s: bigint = 1n << 16n\r
const t: BigInt64Array = new BigInt64Array(31)\r
t.fill(0n)\r
t[0] += 38n * c\r
\r
// assign result to output\r
- o.set(t.slice(0, 16), 0)\r
+ out.set(t.slice(0, 16), 0)\r
}\r
\r
- static Square (o: BigInt64Array, a: BigInt64Array): void {\r
+ static Square (out: BigInt64Array, a: BigInt64Array): void {\r
let v, c, s: bigint = 1n << 16n\r
const t: BigInt64Array = new BigInt64Array(31)\r
t.fill(0n)\r
t[0] += 38n * c\r
\r
// assign result to output\r
- o.set(t.slice(0, 16), 0)\r
+ out.set(t.slice(0, 16), 0)\r
}\r
\r
static add (p: BigInt64Array[], q: BigInt64Array[]): void {\r