@@ -49,44 +49,36 @@ function asyncPBKDF2 (password, salt, iterations, keylen, digest, callback) {
49
49
} )
50
50
}
51
51
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'
54
61
55
- if ( isNode10 ( ) ) {
56
62
if ( digest === 'sha1' ) {
57
63
return crypto . pbkdf2Sync ( password , salt , iterations , keylen )
58
64
} else {
59
65
return compat . pbkdf2Sync ( password , salt , iterations , keylen , digest )
60
66
}
61
- } else {
62
- return crypto . pbkdf2Sync ( password , salt , iterations , keylen , digest )
63
67
}
64
- }
65
68
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
+ }
71
74
72
- if ( isNode10 ( ) ) {
73
75
if ( digest === 'sha1' ) {
74
76
return crypto . pbkdf2 ( password , salt , iterations , keylen , callback )
75
77
} else {
76
78
return asyncPBKDF2 ( password , salt , iterations , keylen , digest , callback )
77
79
}
78
- } else {
79
- return crypto . pbkdf2 ( password , salt , iterations , keylen , digest , callback )
80
80
}
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
92
84
}
0 commit comments