def test_get_decrypt_keys(): kj = KeyJar() kj['Alice'] = [KeyBundle(JWK0['keys'])] kj[''] = [KeyBundle(JWK1['keys'])] kj['C'] = [KeyBundle(JWK2['keys'])] kb = rsa_init({ 'use': ['enc', 'sig'], 'size': 1024, 'name': 'rsa', 'path': 'keys' }) kj.add_kb('', kb) jwt = JWEnc() jwt.headers = {'alg': 'RS256'} jwt.part = [{ 'alg': 'RS256' }, '{"aud": "Bob", "iss": "Alice"}', 'aksjdhaksjbd'] keys = kj.get_jwt_decrypt_keys(jwt) assert keys jwt.part = [{'alg': 'RS256'}, '{"iss": "Alice"}', 'aksjdhaksjbd'] keys = kj.get_jwt_decrypt_keys(jwt) assert keys keys = kj.get_jwt_decrypt_keys(jwt, aud='Bob') assert keys
def test_dump_jwks(): a = {"kty": "oct", "key": "highestsupersecret", "use": "sig"} b = {"kty": "oct", "key": "highestsupersecret", "use": "enc"} kb2 = KeyBundle([a, b]) kb1 = rsa_init({ "use": ["enc", "sig"], "size": 1024, "name": "rsa", "path": "keys" }) # Will not dump symmetric keys dump_jwks([kb1, kb2], "jwks_combo") # Now read it nkb = KeyBundle(source="file://jwks_combo", fileformat="jwks") assert len(nkb) == 2 # both RSA keys assert len(nkb.get("rsa")) == 2 # Will dump symmetric keys dump_jwks([kb1, kb2], "jwks_combo", symmetric_too=True) # Now read it nkb = KeyBundle(source="file://jwks_combo", fileformat="jwks") assert len(nkb) == 4 # two RSA keys assert len(nkb.get("rsa")) == 2 # two symmetric keys assert len(nkb.get("oct")) == 2
def test_get_decrypt_keys(): kj = KeyJar() kj.add_kb("Alice", KeyBundle(JWK0["keys"])) kj.add_kb("", KeyBundle(JWK1["keys"])) kj.add_kb("C", KeyBundle(JWK2["keys"])) kb = rsa_init({ "use": ["enc", "sig"], "size": 1024, "name": "rsa", "path": "keys" }) kj.add_kb("", kb) jwt = JWEnc() jwt.headers = {"alg": "RS256"} jwt.part = [{ "alg": "RS256" }, '{"aud": "Bob", "iss": "Alice"}', "aksjdhaksjbd"] keys = kj.get_jwt_decrypt_keys(jwt) assert keys jwt.part = [{"alg": "RS256"}, '{"iss": "Alice"}', "aksjdhaksjbd"] keys = kj.get_jwt_decrypt_keys(jwt) assert keys with pytest.raises(IssuerNotFound): keys = kj.get_jwt_decrypt_keys(jwt, aud="Bob")
def test_remove_rsa(): kb = rsa_init({"use": ["enc", "sig"], "size": 1024, "name": "rsa", "path": "keys"}) assert len(kb) == 2 keys = kb.get("rsa") assert len(keys) == 2 kb.remove(keys[0]) assert len(kb) == 1
def test_get_all(): kb = rsa_init({"use": ["enc", "sig"], "size": 1024, "name": "rsa", "path": "keys"}) _sym = SYMKey(**{"kty": "oct", "key": "highestsupersecret", "use": "enc"}) kb.append(_sym) assert len(kb.get()) == 3 _k = kb.keys() assert len(_k) == 3
def test_remove_rsa(): kb = rsa_init( {'use': ['enc', 'sig'], 'size': 1024, 'name': 'rsa', 'path': 'keys'}) assert len(kb) == 2 keys = kb.get('rsa') assert len(keys) == 2 kb.remove(keys[0]) assert len(kb) == 1
def test_get_all(): kb = rsa_init( {'use': ['enc', 'sig'], 'size': 1024, 'name': 'rsa', 'path': 'keys'}) _sym = SYMKey(**{"kty": "oct", "key": "highestsupersecret", "use": "enc"}) kb.append(_sym) assert len(kb.get()) == 3 _k = kb.keys() assert len(_k) == 3
def test_rsa_init(): kb = rsa_init({ "use": ["enc", "sig"], "size": 1024, "name": "rsa", "path": "keys" }) assert kb assert len(kb) == 2 assert len(kb.get("rsa")) == 2
def test_rsa_init(): kb = rsa_init({ 'use': ['enc', 'sig'], 'size': 1024, 'name': 'rsa', 'path': 'keys' }) assert kb assert len(kb) == 2 assert len(kb.get('rsa')) == 2
def test_key_mix(): kb = rsa_init({"use": ["enc", "sig"], "size": 1024, "name": "rsa", "path": "keys"}) _sym = SYMKey(**{"kty": "oct", "key": "highestsupersecret", "use": "enc"}) kb.append(_sym) assert len(kb) == 3 assert len(kb.get("rsa")) == 2 assert len(kb.get("oct")) == 1 kb.remove(_sym) assert len(kb) == 2 assert len(kb.get("rsa")) == 2 assert len(kb.get("oct")) == 0
def test_key_mix(): kb = rsa_init( {'use': ['enc', 'sig'], 'size': 1024, 'name': 'rsa', 'path': 'keys'}) _sym = SYMKey(**{"kty": "oct", "key": "highestsupersecret", "use": "enc"}) kb.append(_sym) assert len(kb) == 3 assert len(kb.get('rsa')) == 2 assert len(kb.get('oct')) == 1 kb.remove(_sym) assert len(kb) == 2 assert len(kb.get('rsa')) == 2 assert len(kb.get('oct')) == 0
def test_dump_jwks(): kb1 = rsa_init( {'use': ['enc', 'sig'], 'size': 1024, 'name': 'rsa', 'path': 'keys'}) a = {"kty": "oct", "key": "highestsupersecret", "use": "sig"} b = {"kty": "oct", "key": "highestsupersecret", "use": "enc"} kb2 = KeyBundle([a, b]) dump_jwks([kb1, kb2], 'jwks_combo') # Now read it nkb = KeyBundle(source='file://jwks_combo', fileformat='jwks') assert len(nkb) == 2 # both RSA keys assert len(nkb.get('rsa')) == 2
def test_rsa_init_under_spec(): kb = rsa_init({"use": ["enc", "sig"], "size": 1024}) assert kb assert len(kb) == 2 assert len(kb.get("rsa")) == 2
def test_rsa_init_under_spec(): kb = rsa_init({'use': ['enc', 'sig'], 'size': 1024}) assert kb assert len(kb) == 2 assert len(kb.get('rsa')) == 2