Skip to content

Commit

Permalink
crypto: fix KeyObject handle type error message
Browse files Browse the repository at this point in the history
Fix KeyObject handle type error message. Add test to cover KeyObject
ERR_INVALID_ARG_TYPE exception.

PR-URL: nodejs#27904
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Ujjwal Sharma <usharma1998@gmail.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
  • Loading branch information
pinguinjkeke authored and Trott committed May 30, 2019
1 parent a40aae8 commit f692299
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lib/internal/crypto/keys.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ class KeyObject {
if (type !== 'secret' && type !== 'public' && type !== 'private')
throw new ERR_INVALID_ARG_VALUE('type', type);
if (typeof handle !== 'object')
throw new ERR_INVALID_ARG_TYPE('handle', 'string', handle);
throw new ERR_INVALID_ARG_TYPE('handle', 'object', handle);

this[kKeyType] = type;

Expand Down
22 changes: 22 additions & 0 deletions test/parallel/test-crypto-key-objects.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ const {
createSecretKey,
createPublicKey,
createPrivateKey,
KeyObject,
randomBytes,
publicEncrypt,
privateDecrypt
Expand All @@ -39,6 +40,27 @@ const privateDsa = fixtures.readKey('dsa_private_encrypted_1025.pem',
});
}

{
// Attempting to create a key of a wrong type should throw
const TYPE = 'wrong_type';

common.expectsError(() => new KeyObject(TYPE), {
type: TypeError,
code: 'ERR_INVALID_ARG_VALUE',
message: `The argument 'type' is invalid. Received '${TYPE}'`
});
}

{
// Attempting to create a key with non-object handle should throw
common.expectsError(() => new KeyObject('secret', ''), {
type: TypeError,
code: 'ERR_INVALID_ARG_TYPE',
message:
'The "handle" argument must be of type object. Received type string'
});
}

{
const keybuf = randomBytes(32);
const key = createSecretKey(keybuf);
Expand Down

0 comments on commit f692299

Please sign in to comment.