@ -13,10 +13,10 @@ var crypto = require('crypto');
//
function testPBKDF2 ( password , salt , iterations , keylen , expected ) {
var actual = crypto . pbkdf2Sync ( password , salt , iterations , keylen , 'sha256' ) ;
assert . e qual( actual . toString ( 'latin1' ) , expected ) ;
assert . strictE qual( actual . toString ( 'latin1' ) , expected ) ;
crypto . pbkdf2 ( password , salt , iterations , keylen , 'sha256' , ( err , actual ) => {
assert . e qual( actual . toString ( 'latin1' ) , expected ) ;
assert . strictE qual( actual . toString ( 'latin1' ) , expected ) ;
} ) ;
}
@ -47,43 +47,43 @@ testPBKDF2('pass\0word', 'sa\0lt', 4096, 16,
var expected =
'64c486c55d30d4c5a079b8823b7d7cb37ff0556f537da8410233bcec330ed956' ;
var key = crypto . pbkdf2Sync ( 'password' , 'salt' , 32 , 32 , 'sha256' ) ;
assert . e qual( key . toString ( 'hex' ) , expected ) ;
assert . strictE qual( key . toString ( 'hex' ) , expected ) ;
crypto . pbkdf2 ( 'password' , 'salt' , 32 , 32 , 'sha256' , common . mustCall ( ondone ) ) ;
function ondone ( err , key ) {
if ( err ) throw err ;
assert . e qual( key . toString ( 'hex' ) , expected ) ;
assert . strictE qual( key . toString ( 'hex' ) , expected ) ;
}
// Error path should not leak memory (check with valgrind).
assert . throws ( function ( ) {
crypto . pbkdf2 ( 'password' , 'salt' , 1 , 20 , null ) ;
} ) ;
} , /^Error: No callback provided to pbkdf2$/ ) ;
// Should not work with Infinity key length
assert . throws ( function ( ) {
crypto . pbkdf2 ( 'password' , 'salt' , 1 , Infinity , 'sha256' , common . fail ) ;
} , /Bad key length/ ) ;
} , /^TypeError: Bad key length$ / ) ;
// Should not work with negative Infinity key length
assert . throws ( function ( ) {
crypto . pbkdf2 ( 'password' , 'salt' , 1 , - Infinity , 'sha256' , common . fail ) ;
} , /Bad key length/ ) ;
} , /^TypeError: Bad key length$ / ) ;
// Should not work with NaN key length
assert . throws ( function ( ) {
crypto . pbkdf2 ( 'password' , 'salt' , 1 , NaN , 'sha256' , common . fail ) ;
} , /Bad key length/ ) ;
} , /^TypeError: Bad key length$ / ) ;
// Should not work with negative key length
assert . throws ( function ( ) {
crypto . pbkdf2 ( 'password' , 'salt' , 1 , - 1 , 'sha256' , common . fail ) ;
} , /Bad key length/ ) ;
} , /^TypeError: Bad key length$ / ) ;
// Should not work with key length that does not fit into 32 signed bits
assert . throws ( function ( ) {
crypto . pbkdf2 ( 'password' , 'salt' , 1 , 4073741824 , 'sha256' , common . fail ) ;
} , /Bad key length/ ) ;
} , /^TypeError: Bad key length$ / ) ;
// Should not get FATAL ERROR with empty password and salt
// https://github.com/nodejs/node/issues/8571