From 3a2d800ec17e718af81763fe0ab94c3bbfe8aa7d Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Tue, 31 May 2016 22:52:12 -0700 Subject: [PATCH] faster scrypt. --- lib/bcoin/scrypt.js | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/lib/bcoin/scrypt.js b/lib/bcoin/scrypt.js index 1a29bed7..05c783c4 100644 --- a/lib/bcoin/scrypt.js +++ b/lib/bcoin/scrypt.js @@ -143,19 +143,19 @@ function blockmix_salsa8(B, Y, r) { var X = new Buffer(64); var i; - blkcpy(X, B.slice((2 * r - 1) * 64), 64); + blkcpy(X, B, 0, (2 * r - 1) * 64, 64); for (i = 0; i < 2 * r; i++) { - blkxor(X, B.slice(i * 64), 64); + blkxor(X, B, 0, i * 64, 64); salsa20_8(X); - blkcpy(Y.slice(i * 64), X, 64); + blkcpy(Y, X, i * 64, 0, 64); } for (i = 0; i < r; i++) - blkcpy(B.slice(i * 64), Y.slice((i * 2) * 64), 64); + blkcpy(B, Y, i * 64, (i * 2) * 64, 64); for (i = 0; i < r; i++) - blkcpy(B.slice((i + r) * 64), Y.slice((i * 2 + 1) * 64), 64); + blkcpy(B, Y, (i + r) * 64, (i * 2 + 1) * 64, 64); } function integerify(B, r) { @@ -168,29 +168,29 @@ function smix(B, r, N, V, XY) { var i; var j; - blkcpy(X, B, 128 * r); + blkcpy(X, B, 0, 0, 128 * r); for (i = 0; i < N; i++) { - blkcpy(V.slice(i * (128 * r)), X, 128 * r); + blkcpy(V, X, i * (128 * r), 0, 128 * r); blockmix_salsa8(X, Y, r); } for (i = 0; i < N; i++) { j = integerify(X, r) & (N - 1); - blkxor(X, V.slice(j * (128 * r)), 128 * r); + blkxor(X, V, 0, j * (128 * r), 128 * r); blockmix_salsa8(X, Y, r); } - blkcpy(B, X, 128 * r); + blkcpy(B, X, 0, 0, 128 * r); } -function blkcpy(dest, src, len) { - src.copy(dest, 0, 0, len); +function blkcpy(dest, src, s1, s2, len) { + src.copy(dest, s1, s2, s2 + len); } -function blkxor(dest, src, len) { +function blkxor(dest, src, s1, s2, len) { for (var i = 0; i < len; i++) - dest[i] ^= src[i]; + dest[s1 + i] ^= src[s2 + i]; } /*