From 6d7602ddfa39ec0e798323a759827ef0f0a3d5fb Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Tue, 31 May 2016 22:58:32 -0700 Subject: [PATCH] optimize scrypt more. --- lib/bcoin/scrypt.js | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/lib/bcoin/scrypt.js b/lib/bcoin/scrypt.js index 05c783c4..1abe529c 100644 --- a/lib/bcoin/scrypt.js +++ b/lib/bcoin/scrypt.js @@ -70,7 +70,7 @@ function scrypt(passwd, salt, N, r, p, len) { B = utils.pbkdf2(passwd, salt, 1, p * 128 * r, 'sha256'); for (i = 0; i < p; i++) - smix(B.slice(i * 128 * r), r, N, V, XY); + smix(B, i * 128 * r, r, N, V, XY); return utils.pbkdf2(passwd, B, 1, len, 'sha256'); } @@ -139,7 +139,7 @@ function R(a, b) { return (a << b) | (a >>> (32 - b)); } -function blockmix_salsa8(B, Y, r) { +function blockmix_salsa8(B, Y, Yo, r) { var X = new Buffer(64); var i; @@ -148,40 +148,40 @@ function blockmix_salsa8(B, Y, r) { for (i = 0; i < 2 * r; i++) { blkxor(X, B, 0, i * 64, 64); salsa20_8(X); - blkcpy(Y, X, i * 64, 0, 64); + blkcpy(Y, X, Yo + i * 64, 0, 64); } for (i = 0; i < r; i++) - blkcpy(B, Y, i * 64, (i * 2) * 64, 64); + blkcpy(B, Y, i * 64, Yo + (i * 2) * 64, 64); for (i = 0; i < r; i++) - blkcpy(B, Y, (i + r) * 64, (i * 2 + 1) * 64, 64); + blkcpy(B, Y, (i + r) * 64, Yo + (i * 2 + 1) * 64, 64); } function integerify(B, r) { return B.readUInt32LE((2 * r - 1) * 64, true); } -function smix(B, r, N, V, XY) { +function smix(B, Bo, r, N, V, XY) { var X = XY; - var Y = XY.slice(128 * r); + var Y = XY; var i; var j; - blkcpy(X, B, 0, 0, 128 * r); + blkcpy(X, B, 0, Bo, 128 * r); for (i = 0; i < N; i++) { blkcpy(V, X, i * (128 * r), 0, 128 * r); - blockmix_salsa8(X, Y, r); + blockmix_salsa8(X, Y, 128 * r, r); } for (i = 0; i < N; i++) { j = integerify(X, r) & (N - 1); blkxor(X, V, 0, j * (128 * r), 128 * r); - blockmix_salsa8(X, Y, r); + blockmix_salsa8(X, Y, 128 * r, r); } - blkcpy(B, X, 0, 0, 128 * r); + blkcpy(B, X, Bo, 0, 128 * r); } function blkcpy(dest, src, s1, s2, len) {