Skip to content

Commit 3555fe5

Browse files
committed
fix: raise MissingKeyError when import empty key set. #35
1 parent eafa07e commit 3555fe5

2 files changed

Lines changed: 13 additions & 2 deletions

File tree

src/joserfc/_keys.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,12 @@
66
from .rfc7518.rsa_key import RSAKey
77
from .rfc7518.ec_key import ECKey
88
from .rfc8037.okp_key import OKPKey
9-
from .errors import InvalidKeyIdError, InvalidKeyTypeError, MissingKeyTypeError
9+
from .errors import (
10+
MissingKeyError,
11+
InvalidKeyIdError,
12+
InvalidKeyTypeError,
13+
MissingKeyTypeError,
14+
)
1015
from .util import to_bytes
1116

1217
__all__ = [
@@ -161,6 +166,9 @@ def import_key_set(cls, value: KeySetSerialization, parameters: KeyParameters |
161166
for data in value["keys"]:
162167
keys.append(cls.registry_cls.import_key(data, parameters=parameters))
163168

169+
if not keys:
170+
raise MissingKeyError("No keys to import")
171+
164172
return cls(keys)
165173

166174
@classmethod

tests/jwk/test_jwk_set.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
from unittest import TestCase
22

3-
from joserfc.errors import InvalidKeyTypeError, InvalidKeyIdError
3+
from joserfc.errors import InvalidKeyTypeError, InvalidKeyIdError, MissingKeyError
44
from joserfc.jwk import KeySet, RSAKey, ECKey, OctKey
55
from tests.keys import read_key
66

77
KeySet.algorithm_keys["RS256"] = ["RSA"]
88

99

1010
class TestKeySet(TestCase):
11+
def test_import_empty_key_set(self):
12+
self.assertRaises(MissingKeyError, KeySet.import_key_set, {"keys": []})
13+
1114
def test_generate_and_import_key_set(self):
1215
jwks1 = KeySet.generate_key_set("RSA", 2048)
1316
self.assertEqual(len(jwks1.keys), 4)

0 commit comments

Comments
 (0)