1
- var checkParameters = require ( './lib/precondition' )
2
1
var native = require ( 'crypto' )
3
2
3
+ var checkParameters = require ( './lib/precondition' )
4
+ var defaultEncoding = require ( './lib/default-encoding' )
5
+ var toBuffer = require ( './lib/to-buffer' )
6
+
4
7
function nativePBKDF2 ( password , salt , iterations , keylen , digest , callback ) {
5
- checkParameters ( password , salt , iterations , keylen )
8
+ checkParameters ( iterations , keylen )
9
+ password = toBuffer ( password , defaultEncoding , 'Password' )
10
+ salt = toBuffer ( salt , defaultEncoding , 'Salt' )
6
11
7
12
if ( typeof digest === 'function' ) {
8
13
callback = digest
@@ -14,7 +19,9 @@ function nativePBKDF2 (password, salt, iterations, keylen, digest, callback) {
14
19
}
15
20
16
21
function nativePBKDF2Sync ( password , salt , iterations , keylen , digest ) {
17
- checkParameters ( password , salt , iterations , keylen )
22
+ checkParameters ( iterations , keylen )
23
+ password = toBuffer ( password , defaultEncoding , 'Password' )
24
+ salt = toBuffer ( salt , defaultEncoding , 'Salt' )
18
25
digest = digest || 'sha1'
19
26
return native . pbkdf2Sync ( password , salt , iterations , keylen , digest )
20
27
}
0 commit comments