diff --git a/lib/jwks/keystore.js b/lib/jwks/keystore.js index 6e76e035da..c81c2d3021 100644 --- a/lib/jwks/keystore.js +++ b/lib/jwks/keystore.js @@ -139,6 +139,12 @@ class KeyStore { sorted: true })}` } + + * [Symbol.iterator] () { + for (const key of this.#keys) { + yield key + } + } } module.exports = KeyStore diff --git a/test/jwks/keystore.test.js b/test/jwks/keystore.test.js index 7aba9bdeb3..af12836848 100644 --- a/test/jwks/keystore.test.js +++ b/test/jwks/keystore.test.js @@ -199,3 +199,13 @@ test('.fromJWKS() input validation', t => { }, { instanceOf: TypeError, message: 'jwks must be a JSON Web Key Set formatted object' }) }) }) + +test('keystore instance is an iterator', t => { + const ks = new KeyStore() + ks.generateSync('EC') + ks.generateSync('RSA') + for (const key of ks) { + t.truthy(key) + } + t.pass() +})