Skip to content

Commit e191f7e

Browse files
committed
index: change old (<=0.10) node detection
1 parent 14dbae5 commit e191f7e

File tree

1 file changed

+17
-25
lines changed

1 file changed

+17
-25
lines changed

index.js

Lines changed: 17 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -49,44 +49,36 @@ function asyncPBKDF2 (password, salt, iterations, keylen, digest, callback) {
4949
})
5050
}
5151

52-
exports.pbkdf2Sync = function pbkdf2Sync (password, salt, iterations, keylen, digest) {
53-
digest = digest || 'sha1'
52+
// node <= 0.10 supports only sha1 for pbkdf2
53+
var isOldNode = (function () {
54+
var sha1 = '0c60c80f961f0e71f3a9b524af6012062fe037a6e0f0eb94fe8fc46bdc637164'
55+
return crypto.pbkdf2Sync('password', 'salt', 1, 32, 'sha256').toString('hex') === sha1
56+
})()
57+
58+
if (isOldNode) {
59+
exports.pbkdf2Sync = function pbkdf2Sync (password, salt, iterations, keylen, digest) {
60+
digest = digest || 'sha1'
5461

55-
if (isNode10()) {
5662
if (digest === 'sha1') {
5763
return crypto.pbkdf2Sync(password, salt, iterations, keylen)
5864
} else {
5965
return compat.pbkdf2Sync(password, salt, iterations, keylen, digest)
6066
}
61-
} else {
62-
return crypto.pbkdf2Sync(password, salt, iterations, keylen, digest)
6367
}
64-
}
6568

66-
exports.pbkdf2 = function pbkdf2 (password, salt, iterations, keylen, digest, callback) {
67-
if (typeof digest === 'function') {
68-
callback = digest
69-
digest = 'sha1'
70-
}
69+
exports.pbkdf2 = function pbkdf2 (password, salt, iterations, keylen, digest, callback) {
70+
if (typeof digest === 'function') {
71+
callback = digest
72+
digest = 'sha1'
73+
}
7174

72-
if (isNode10()) {
7375
if (digest === 'sha1') {
7476
return crypto.pbkdf2(password, salt, iterations, keylen, callback)
7577
} else {
7678
return asyncPBKDF2(password, salt, iterations, keylen, digest, callback)
7779
}
78-
} else {
79-
return crypto.pbkdf2(password, salt, iterations, keylen, digest, callback)
8080
}
81-
}
82-
83-
var sha1 = '0c60c80f961f0e71f3a9b524af6012062fe037a6e0f0eb94fe8fc46bdc637164'
84-
var isNode10Result
85-
86-
function isNode10 () {
87-
if (typeof isNode10Result === 'undefined') {
88-
isNode10Result = crypto.pbkdf2Sync('password', 'salt', 1, 32, 'sha256').toString('hex') === sha1
89-
}
90-
91-
return isNode10Result
81+
} else {
82+
exports.pbkdf2Sync = crypto.pbkdf2Sync
83+
exports.pbkdf2 = crypto.pbkdf2
9284
}

0 commit comments

Comments
 (0)