diff options
author | William Woodruff <william@yossarian.net> | 2022-01-24 21:12:53 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-25 08:12:53 +0600 |
commit | a03b36cd9bf067c232f61f8445b09d24e2732ef6 (patch) | |
tree | 549e2afc0f31e697c189cce7c770f1ff8c6b1a09 /tests | |
parent | 77d791681fa3d0ba65a648de42dd3d671138cb95 (diff) | |
download | pyjwt-a03b36cd9bf067c232f61f8445b09d24e2732ef6.tar.gz |
api_jwk: Add PyJWKSet.__getitem__ (#725)
* api_jwk: Add PyJWKSet.__getitem__
Closes #724.
* CHANGELOG: record changes
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_api_jwk.py | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/test_api_jwk.py b/tests/test_api_jwk.py index 53c0547..6f6cb89 100644 --- a/tests/test_api_jwk.py +++ b/tests/test_api_jwk.py @@ -252,3 +252,26 @@ class TestPyJWKSet: assert jwk.key_type == "RSA" assert jwk.key_id == "keyid-abc123" assert jwk.public_key_use == "sig" + + @crypto_required + def test_keyset_should_index_by_kid(self): + algo = RSAAlgorithm(RSAAlgorithm.SHA256) + + with open(key_path("jwk_rsa_pub.json")) as keyfile: + pub_key = algo.from_jwk(keyfile.read()) + + key_data_str = algo.to_jwk(pub_key) + key_data = json.loads(key_data_str) + + # TODO Should `to_jwk` set these? + key_data["alg"] = "RS256" + key_data["use"] = "sig" + key_data["kid"] = "keyid-abc123" + + jwk_set = PyJWKSet.from_dict({"keys": [key_data]}) + + jwk = jwk_set.keys[0] + assert jwk == jwk_set["keyid-abc123"] + + with pytest.raises(KeyError): + jwk_set["this-kid-does-not-exist"] |