aboutsummaryrefslogtreecommitdiff
path: root/node_modules/pbkdf2
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/pbkdf2')
-rw-r--r--node_modules/pbkdf2/index.js11
-rw-r--r--node_modules/pbkdf2/lib/sync-browser.js31
-rw-r--r--node_modules/pbkdf2/lib/sync.js21
-rw-r--r--node_modules/pbkdf2/package.json5
4 files changed, 32 insertions, 36 deletions
diff --git a/node_modules/pbkdf2/index.js b/node_modules/pbkdf2/index.js
index c3e4f5cb3..74df093e6 100644
--- a/node_modules/pbkdf2/index.js
+++ b/node_modules/pbkdf2/index.js
@@ -1,8 +1,9 @@
var crypto = require('crypto')
/* istanbul ignore next */
-if (crypto.pbkdf2Sync.toString().indexOf('keylen, digest') === -1) {
- throw new Error('Unsupported crypto version')
+if (crypto && crypto.pbkdf2Sync && crypto.pbkdf2Sync.toString().indexOf('keylen, digest') === -1) {
+ exports.pbkdf2 = require('./lib/async')
+ exports.pbkdf2Sync = require('./lib/sync')
+} else {
+ exports.pbkdf2Sync = crypto.pbkdf2Sync
+ exports.pbkdf2 = crypto.pbkdf2
}
-
-exports.pbkdf2Sync = crypto.pbkdf2Sync
-exports.pbkdf2 = crypto.pbkdf2
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
diff --git a/node_modules/pbkdf2/lib/sync.js b/node_modules/pbkdf2/lib/sync.js
index 762e2f4e4..67b2e543d 100644
--- a/node_modules/pbkdf2/lib/sync.js
+++ b/node_modules/pbkdf2/lib/sync.js
@@ -13,41 +13,38 @@ var createHmac = require('create-hmac')
var checkParameters = require('../lib/precondition')
var defaultEncoding = require('../lib/default-encoding')
var Buffer = require('safe-buffer').Buffer
-module.exports = pbkdf2
+
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)
checkParameters(iterations, keylen)
-
digest = digest || 'sha1'
var DK = Buffer.allocUnsafe(keylen)
var block1 = Buffer.allocUnsafe(salt.length + 4)
salt.copy(block1, 0, 0, salt.length)
- var U, j, destPos, len
-
+ var destPos = 0
var hLen = sizes[digest]
- var T = Buffer.allocUnsafe(hLen)
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 = createHmac(digest, password).update(block1).digest()
- U.copy(T, 0, 0, hLen)
+ var T = createHmac(digest, password).update(block1).digest()
+ var U = T
- for (j = 1; j < iterations; j++) {
+ for (var j = 1; j < iterations; j++) {
U = createHmac(digest, password).update(U).digest()
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
diff --git a/node_modules/pbkdf2/package.json b/node_modules/pbkdf2/package.json
index fbd101898..716b50631 100644
--- a/node_modules/pbkdf2/package.json
+++ b/node_modules/pbkdf2/package.json
@@ -1,6 +1,6 @@
{
"name": "pbkdf2",
- "version": "3.0.12",
+ "version": "3.0.13",
"description": "This library provides the functionality of PBKDF2 with the ability to use any supported hashing algorithm returned from crypto.getHashes()",
"keywords": [
"pbkdf2",
@@ -42,8 +42,7 @@
"browserify": "*",
"nyc": "^6.4.0",
"standard": "*",
- "tape": "^4.5.1",
- "microtime": "^2.1.3"
+ "tape": "^4.5.1"
},
"dependencies": {
"create-hash": "^1.1.2",