test: improve test for crypto pbkdf2
- use assert.strictEqual instead of assert.equal - add regexp for assert.throws PR-URL: https://github.com/nodejs/node/pull/9883 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Michaël Zasso <targos@protonmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
ad6a6450c9
commit
aeec621017
@ -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.equal(actual.toString('latin1'), expected);
|
||||
assert.strictEqual(actual.toString('latin1'), expected);
|
||||
|
||||
crypto.pbkdf2(password, salt, iterations, keylen, 'sha256', (err, actual) => {
|
||||
assert.equal(actual.toString('latin1'), expected);
|
||||
assert.strictEqual(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.equal(key.toString('hex'), expected);
|
||||
assert.strictEqual(key.toString('hex'), expected);
|
||||
|
||||
crypto.pbkdf2('password', 'salt', 32, 32, 'sha256', common.mustCall(ondone));
|
||||
function ondone(err, key) {
|
||||
if (err) throw err;
|
||||
assert.equal(key.toString('hex'), expected);
|
||||
assert.strictEqual(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
|
||||
|
Loading…
x
Reference in New Issue
Block a user