Skip to content
/ node Public
forked from nodejs/node

Commit 7ea1625

Browse files
committed
crypto: add CryptoKey Symbol.toStringTag
closes nodejs#45987
1 parent 4830a6c commit 7ea1625

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

lib/internal/crypto/keys.js

+5
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ const {
77
ObjectDefineProperties,
88
ObjectSetPrototypeOf,
99
Symbol,
10+
SymbolToStringTag,
1011
Uint8Array,
1112
} = primordials;
1213

@@ -680,6 +681,10 @@ class CryptoKey {
680681
throw new ERR_INVALID_THIS('CryptoKey');
681682
return ArrayFrom(this[kKeyUsages]);
682683
}
684+
685+
get [SymbolToStringTag]() {
686+
return 'CryptoKey';
687+
}
683688
}
684689

685690
ObjectDefineProperties(CryptoKey.prototype, {

test/parallel/test-webcrypto-keygen.js

+8
Original file line numberDiff line numberDiff line change
@@ -277,6 +277,8 @@ const vectors = {
277277

278278
assert.strictEqual(publicKey.type, 'public');
279279
assert.strictEqual(privateKey.type, 'private');
280+
assert.strictEqual(publicKey.toString(), '[object CryptoKey]');
281+
assert.strictEqual(privateKey.toString(), '[object CryptoKey]');
280282
assert.strictEqual(publicKey.extractable, true);
281283
assert.strictEqual(privateKey.extractable, true);
282284
assert.deepStrictEqual(publicKey.usages, publicUsages);
@@ -439,6 +441,8 @@ const vectors = {
439441

440442
assert.strictEqual(publicKey.type, 'public');
441443
assert.strictEqual(privateKey.type, 'private');
444+
assert.strictEqual(publicKey.toString(), '[object CryptoKey]');
445+
assert.strictEqual(privateKey.toString(), '[object CryptoKey]');
442446
assert.strictEqual(publicKey.extractable, true);
443447
assert.strictEqual(privateKey.extractable, true);
444448
assert.deepStrictEqual(publicKey.usages, publicUsages);
@@ -503,6 +507,7 @@ const vectors = {
503507
assert(isCryptoKey(key));
504508

505509
assert.strictEqual(key.type, 'secret');
510+
assert.strictEqual(key.toString(), '[object CryptoKey]');
506511
assert.strictEqual(key.extractable, true);
507512
assert.deepStrictEqual(key.usages, usages);
508513
assert.strictEqual(key.algorithm.name, name);
@@ -562,6 +567,7 @@ const vectors = {
562567
assert(isCryptoKey(key));
563568

564569
assert.strictEqual(key.type, 'secret');
570+
assert.strictEqual(key.toString(), '[object CryptoKey]');
565571
assert.strictEqual(key.extractable, true);
566572
assert.deepStrictEqual(key.usages, usages);
567573
assert.strictEqual(key.algorithm.name, 'HMAC');
@@ -629,6 +635,8 @@ assert.throws(() => new CryptoKey(), { code: 'ERR_ILLEGAL_CONSTRUCTOR' });
629635

630636
assert.strictEqual(publicKey.type, 'public');
631637
assert.strictEqual(privateKey.type, 'private');
638+
assert.strictEqual(publicKey.toString(), '[object CryptoKey]');
639+
assert.strictEqual(privateKey.toString(), '[object CryptoKey]');
632640
assert.strictEqual(publicKey.extractable, true);
633641
assert.strictEqual(privateKey.extractable, true);
634642
assert.deepStrictEqual(publicKey.usages, publicUsages);

0 commit comments

Comments
 (0)