Skip to content

Commit

Permalink
Retrieve all possible keys (#518)
Browse files Browse the repository at this point in the history
Fix keyio get method to retrieve all possible keys for given usage.
  • Loading branch information
ermakoves authored and tpazderka committed May 15, 2018
1 parent af74d62 commit 10e6739
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 9 deletions.
2 changes: 1 addition & 1 deletion src/oic/utils/keyio.py
Original file line number Diff line number Diff line change
Expand Up @@ -548,7 +548,7 @@ def get(self, key_use, key_type="", issuer="", kid=None, **kwargs):
break
if not key.use or use == key.use:
lst.append(key)
break
continue
# Verification can be performed by both `sig` and `ver` keys
if key_use == 'ver' and key.use in ('sig', 'ver'):
lst.append(key)
Expand Down
16 changes: 8 additions & 8 deletions tests/test_keyio.py
Original file line number Diff line number Diff line change
Expand Up @@ -303,8 +303,8 @@ def test_keyjar_group_keys(self):
keybundle_from_local_file(RSAKEY, "rsa", ["ver", "sig"]))

verified_keys = ks.verify_keys("http://www.example.org")
assert len(verified_keys) == 4
assert len([k for k in verified_keys if k.kty == "oct"]) == 2
assert len(verified_keys) == 6
assert len([k for k in verified_keys if k.kty == "oct"]) == 4
assert len([k for k in verified_keys if k.kty == "RSA"]) == 2

def test_remove_key(self):
Expand Down Expand Up @@ -336,8 +336,8 @@ def test_remove_key(self):
assert len(keys) == 0

keys = ks.verify_keys("http://www.example.com")
assert len(keys) == 1
assert len([k for k in keys if k.kty == "oct"]) == 1
assert len(keys) == 2
assert len([k for k in keys if k.kty == "oct"]) == 2

keys = ks.decrypt_keys("http://www.example.org")
assert keys == []
Expand All @@ -354,11 +354,11 @@ def test_get_by_kid(self):

def test_get_inactive_ver(self):
ks = KeyJar()
ks['http://example.com'] = KeyBundle([{"kty": "oct", "key": "a1b2c3d4", "use": "ver"}])
ks['http://example.com'][0]._keys[0].inactive_since = 1
ks['http://example.com'] = KeyBundle([{"kty": "oct", "key": "a1b2c3d4", "use": "sig"},
{"kty": "oct", "key": "a1b2c3d4", "use": "ver"}])
ks['http://example.com'][0]._keys[1].inactive_since = 1
key = ks.get_verify_key(owner='http://example.com')

assert len(key) == 1
assert len(key) == 2

def test_get_inactive_sig(self):
"""get_signing_key cannot return inactive `sig` key."""
Expand Down

0 comments on commit 10e6739

Please sign in to comment.