faster scrypt.
This commit is contained in:
parent
0c4df11cb6
commit
3a2d800ec1
@ -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];
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Loading…
Reference in New Issue
Block a user