Skip to content

Commit

Permalink
Argon, ripemd: rename tmp buffer vars
Browse files Browse the repository at this point in the history
  • Loading branch information
paulmillr committed Jan 2, 2024
1 parent 651d09a commit f3a5496
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 17 deletions.
24 changes: 12 additions & 12 deletions src/argon2.ts
Original file line number Diff line number Diff line change
Expand Up @@ -47,13 +47,13 @@ function blamka(Ah: number, Al: number, Bh: number, Bl: number) {
}

// Temporary block buffer
const BUF = new Uint32Array(256);
const A2_BUF = new Uint32Array(256);

function G(a: number, b: number, c: number, d: number) {
let Al = BUF[2*a], Ah = BUF[2*a + 1]; // prettier-ignore
let Bl = BUF[2*b], Bh = BUF[2*b + 1]; // prettier-ignore
let Cl = BUF[2*c], Ch = BUF[2*c + 1]; // prettier-ignore
let Dl = BUF[2*d], Dh = BUF[2*d + 1]; // prettier-ignore
let Al = A2_BUF[2*a], Ah = A2_BUF[2*a + 1]; // prettier-ignore
let Bl = A2_BUF[2*b], Bh = A2_BUF[2*b + 1]; // prettier-ignore
let Cl = A2_BUF[2*c], Ch = A2_BUF[2*c + 1]; // prettier-ignore
let Dl = A2_BUF[2*d], Dh = A2_BUF[2*d + 1]; // prettier-ignore

({ h: Ah, l: Al } = blamka(Ah, Al, Bh, Bl));
({ Dh, Dl } = { Dh: Dh ^ Ah, Dl: Dl ^ Al });
Expand All @@ -71,10 +71,10 @@ function G(a: number, b: number, c: number, d: number) {
({ Bh, Bl } = { Bh: Bh ^ Ch, Bl: Bl ^ Cl });
({ Bh, Bl } = { Bh: rotrBH(Bh, Bl, 63), Bl: rotrBL(Bh, Bl, 63) });

(BUF[2 * a] = Al), (BUF[2 * a + 1] = Ah);
(BUF[2 * b] = Bl), (BUF[2 * b + 1] = Bh);
(BUF[2 * c] = Cl), (BUF[2 * c + 1] = Ch);
(BUF[2 * d] = Dl), (BUF[2 * d + 1] = Dh);
(A2_BUF[2 * a] = Al), (A2_BUF[2 * a + 1] = Ah);
(A2_BUF[2 * b] = Bl), (A2_BUF[2 * b + 1] = Bh);
(A2_BUF[2 * c] = Cl), (A2_BUF[2 * c + 1] = Ch);
(A2_BUF[2 * d] = Dl), (A2_BUF[2 * d + 1] = Dh);
}

// prettier-ignore
Expand All @@ -93,7 +93,7 @@ function P(
}

function block(x: Uint32Array, xPos: number, yPos: number, outPos: number, needXor: boolean) {
for (let i = 0; i < 256; i++) BUF[i] = x[xPos + i] ^ x[yPos + i];
for (let i = 0; i < 256; i++) A2_BUF[i] = x[xPos + i] ^ x[yPos + i];

// columns
for (let i = 0; i < 128; i += 16) {
Expand All @@ -112,8 +112,8 @@ function block(x: Uint32Array, xPos: number, yPos: number, outPos: number, needX
);
}

if (needXor) for (let i = 0; i < 256; i++) x[outPos + i] ^= BUF[i] ^ x[xPos + i] ^ x[yPos + i];
else for (let i = 0; i < 256; i++) x[outPos + i] = BUF[i] ^ x[xPos + i] ^ x[yPos + i];
if (needXor) for (let i = 0; i < 256; i++) x[outPos + i] ^= A2_BUF[i] ^ x[xPos + i] ^ x[yPos + i];
else for (let i = 0; i < 256; i++) x[outPos + i] = A2_BUF[i] ^ x[xPos + i] ^ x[yPos + i];
}

// Variable-Length Hash Function H'
Expand Down
10 changes: 5 additions & 5 deletions src/ripemd160.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ function f(group: number, x: number, y: number, z: number): number {
else return x ^ (y | ~z);
}
// Temporary buffer, not used to store anything between runs
const BUF = /* @__PURE__ */ new Uint32Array(16);
const R_BUF = /* @__PURE__ */ new Uint32Array(16);
export class RIPEMD160 extends HashMD<RIPEMD160> {
private h0 = 0x67452301 | 0;
private h1 = 0xefcdab89 | 0;
Expand All @@ -57,7 +57,7 @@ export class RIPEMD160 extends HashMD<RIPEMD160> {
this.h4 = h4 | 0;
}
protected process(view: DataView, offset: number): void {
for (let i = 0; i < 16; i++, offset += 4) BUF[i] = view.getUint32(offset, true);
for (let i = 0; i < 16; i++, offset += 4) R_BUF[i] = view.getUint32(offset, true);
// prettier-ignore
let al = this.h0 | 0, ar = al,
bl = this.h1 | 0, br = bl,
Expand All @@ -73,12 +73,12 @@ export class RIPEMD160 extends HashMD<RIPEMD160> {
const rl = idxL[group], rr = idxR[group]; // prettier-ignore
const sl = shiftsL[group], sr = shiftsR[group]; // prettier-ignore
for (let i = 0; i < 16; i++) {
const tl = (rotl(al + f(group, bl, cl, dl) + BUF[rl[i]] + hbl, sl[i]) + el) | 0;
const tl = (rotl(al + f(group, bl, cl, dl) + R_BUF[rl[i]] + hbl, sl[i]) + el) | 0;
al = el, el = dl, dl = rotl(cl, 10) | 0, cl = bl, bl = tl; // prettier-ignore
}
// 2 loops are 10% faster
for (let i = 0; i < 16; i++) {
const tr = (rotl(ar + f(rGroup, br, cr, dr) + BUF[rr[i]] + hbr, sr[i]) + er) | 0;
const tr = (rotl(ar + f(rGroup, br, cr, dr) + R_BUF[rr[i]] + hbr, sr[i]) + er) | 0;
ar = er, er = dr, dr = rotl(cr, 10) | 0, cr = br, br = tr; // prettier-ignore
}
}
Expand All @@ -92,7 +92,7 @@ export class RIPEMD160 extends HashMD<RIPEMD160> {
);
}
protected roundClean() {
BUF.fill(0);
R_BUF.fill(0);
}
destroy() {
this.destroyed = true;
Expand Down

0 comments on commit f3a5496

Please sign in to comment.