async function getScryptHash(password, salt) { const hashed = crypto.scryptSync(password, salt, 32, {N: 16384, r:8, p:1}); return hashed; }
common.expectsError(() => crypto.scryptSync('pass', 'salt', 1, options),
common.expectsError(() => crypto.scryptSync(...args), expected);
args: ['', '', null], expected: { code: 'ERR_INVALID_ARG_TYPE', message: /"keylen"/ }, }, { args: ['', '', .42], expected: { code: 'ERR_OUT_OF_RANGE', message: /"keylen"/ }, }, { args: ['', '', -42], expected: { code: 'ERR_OUT_OF_RANGE', message: /"keylen"/ }, }, ]; for (const options of good) { const { pass, salt, keylen, expected } = options; const actual = crypto.scryptSync(pass, salt, keylen, options); assert.strictEqual(actual.toString('hex'), expected); crypto.scrypt(pass, salt, keylen, options, common.mustCall((err, actual) => { assert.ifError(err); assert.strictEqual(actual.toString('hex'), expected); })); } for (const options of bad) { const expected = { code: 'ERR_CRYPTO_SCRYPT_INVALID_PARAMETER', message: 'Invalid scrypt parameter', type: Error, }; common.expectsError(() => crypto.scrypt('pass', 'salt', 1, options, () => {}), expected);