aboutsummaryrefslogtreecommitdiff
path: root/node_modules/pbkdf2/lib/sync-browser.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-08-14 05:01:11 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-08-14 05:02:09 +0200
commit363723fc84f7b8477592e0105aeb331ec9a017af (patch)
tree29f92724f34131bac64d6a318dd7e30612e631c7 /node_modules/pbkdf2/lib/sync-browser.js
parent5634e77ad96bfe1818f6b6ee70b7379652e5487f (diff)
node_modules
Diffstat (limited to 'node_modules/pbkdf2/lib/sync-browser.js')
-rw-r--r--node_modules/pbkdf2/lib/sync-browser.js31
1 files changed, 15 insertions, 16 deletions
diff --git a/node_modules/pbkdf2/lib/sync-browser.js b/node_modules/pbkdf2/lib/sync-browser.js
index 2452e9fe3..7f0bf9131 100644
--- a/node_modules/pbkdf2/lib/sync-browser.js
+++ b/node_modules/pbkdf2/lib/sync-browser.js
@@ -16,6 +16,7 @@ var sizes = {
rmd160: 20,
ripemd160: 20
}
+
function Hmac (alg, key, saltLen) {
var hash = getDigest(alg)
var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64
@@ -52,16 +53,16 @@ Hmac.prototype.run = function (data, ipad) {
}
function getDigest (alg) {
- if (alg === 'rmd160' || alg === 'ripemd160') return rmd160
- if (alg === 'md5') return md5
- return shaFunc
-
function shaFunc (data) {
return sha(alg).update(data).digest()
}
+
+ if (alg === 'rmd160' || alg === 'ripemd160') return rmd160
+ if (alg === 'md5') return md5
+ return shaFunc
}
-module.exports = function (password, salt, iterations, keylen, digest) {
+function pbkdf2 (password, salt, iterations, keylen, digest) {
if (!Buffer.isBuffer(password)) password = Buffer.from(password, defaultEncoding)
if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, defaultEncoding)
@@ -75,28 +76,26 @@ module.exports = function (password, salt, iterations, keylen, digest) {
var block1 = Buffer.allocUnsafe(salt.length + 4)
salt.copy(block1, 0, 0, salt.length)
- var U, j, destPos, len
-
- var hLen = hmac.size
- var T = Buffer.allocUnsafe(hLen)
+ var destPos = 0
+ var hLen = sizes[digest]
var l = Math.ceil(keylen / hLen)
- var r = keylen - (l - 1) * hLen
for (var i = 1; i <= l; i++) {
block1.writeUInt32BE(i, salt.length)
- U = hmac.run(block1, hmac.ipad1)
- U.copy(T, 0, 0, hLen)
+ var T = hmac.run(block1, hmac.ipad1)
+ var U = T
- for (j = 1; j < iterations; j++) {
+ for (var j = 1; j < iterations; j++) {
U = hmac.run(U, hmac.ipad2)
for (var k = 0; k < hLen; k++) T[k] ^= U[k]
}
- destPos = (i - 1) * hLen
- len = (i === l ? r : hLen)
- T.copy(DK, destPos, 0, len)
+ T.copy(DK, destPos)
+ destPos += hLen
}
return DK
}
+
+module.exports = pbkdf2