def test_keyjar_remove_key(): ks = KeyJar() ks[""] = KeyBundle([{"kty": "oct", "key": "a1b2c3d4", "use": "sig"}, {"kty": "oct", "key": "a1b2c3d4", "use": "ver"}]) ks["http://www.example.org"] = [ KeyBundle([ {"kty": "oct", "key": "e5f6g7h8", "use": "sig"}, {"kty": "oct", "key": "e5f6g7h8", "use": "ver"}]), keybundle_from_local_file(RSAKEY, "rsa", ["enc", "dec"]) ] ks["http://www.example.com"] = keybundle_from_local_file(RSA0, "rsa", ["enc", "dec"]) coll = ks["http://www.example.org"] # coll is list of KeyBundles assert len(coll) == 2 keys = ks.get_encrypt_key(key_type="RSA", owner="http://www.example.org") assert len(keys) == 1 _key = keys[0] ks.remove_key("http://www.example.org", "RSA", _key) coll = ks["http://www.example.org"] assert len(coll) == 1 # Only one remaining key keys = ks.get_encrypt_key(key_type="rsa", owner="http://www.example.org") 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 keys = ks.decrypt_keys("http://www.example.org") assert keys == []
def test_keyjar_remove_key(): ks = KeyJar() ks[""] = KeyBundle({"hmac":"a1b2c3d4"}, usage=["sig", "ver"]) ks["http://www.example.org"] = [ KeyBundle({"hmac": "e5f6g7h8"}, usage=["sig", "ver"]), KeyBundle({"rsa": "-rsa-key-"}, usage=["enc", "dec"]) ] ks["http://www.example.com"] = KeyBundle({"hmac": "i9j10k11l12"}, usage=["sig", "ver"]) coll = ks["http://www.example.org"] # coll is list of KeyBundles assert len(coll) == 2 key = ks.get_encrypt_key(type="rsa", owner="http://www.example.org") assert key == {"rsa": ["-rsa-key-"]} ks.remove_key("http://www.example.org", "rsa", "-rsa-key-") coll = ks["http://www.example.org"] assert len(coll) == 1 # Only one remaining key key = ks.get_encrypt_key(type="rsa", owner="http://www.example.org") assert key == {"rsa": []} keys = ks.verify_keys("http://www.example.com") assert keys == {'hmac': ['i9j10k11l12', 'a1b2c3d4']} keys = ks.decrypt_keys("http://www.example.org") assert keys == {}
def test_keyjar_group_keys(self): ks = KeyJar() ks[""] = KeyBundle([{ "kty": "oct", "key": "a1b2c3d4", "use": "sig" }, { "kty": "oct", "key": "a1b2c3d4", "use": "ver" }]) ks["http://www.example.org"] = KeyBundle([{ "kty": "oct", "key": "e5f6g7h8", "use": "sig" }, { "kty": "oct", "key": "e5f6g7h8", "use": "ver" }]) ks["http://www.example.org"].append( keybundle_from_local_file(RSAKEY, "rsa", ["ver", "sig"])) verified_keys = ks.verify_keys("http://www.example.org") 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_keyjar_pairkeys(): ks = KeyJar() ks[""] = KeyBundle([{ "kty": "oct", "key": "a1b2c3d4", "use": "sig" }, { "kty": "oct", "key": "a1b2c3d4", "use": "ver" }]) ks["http://www.example.org"] = KeyBundle([{ "kty": "oct", "key": "e5f6g7h8", "use": "sig" }, { "kty": "oct", "key": "e5f6g7h8", "use": "ver" }]) ks["http://www.example.org"].append( keybundle_from_local_file(RSAKEY, "rsa", ["ver", "sig"])) collection = ks.verify_keys("http://www.example.org") assert len(collection) == 3 assert len([k for k in collection if k.kty == "oct"]) == 2 assert len([k for k in collection if k.kty == "RSA"]) == 1
def test_remove_key(self): ks = KeyJar() ks[""] = KeyBundle([{"kty": "oct", "key": "a1b2c3d4", "use": "sig"}, {"kty": "oct", "key": "a1b2c3d4", "use": "ver"}]) ks["http://www.example.org"] = [ KeyBundle([ {"kty": "oct", "key": "e5f6g7h8", "use": "sig"}, {"kty": "oct", "key": "e5f6g7h8", "use": "ver"}]), keybundle_from_local_file(RSAKEY, "rsa", ["enc", "dec"]) ] ks["http://www.example.com"] = keybundle_from_local_file(RSA0, "rsa", ["enc", "dec"]) coll = ks["http://www.example.org"] # coll is list of KeyBundles assert len(coll) == 2 keys = ks.get_encrypt_key(key_type="RSA", owner="http://www.example.org") assert len(keys) == 1 _key = keys[0] ks.remove_key("http://www.example.org", "RSA", _key) coll = ks["http://www.example.org"] assert len(coll) == 1 # Only one remaining key keys = ks.get_encrypt_key(key_type="rsa", owner="http://www.example.org") 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 keys = ks.decrypt_keys("http://www.example.org") assert keys == []
def test_keyjar_pairkeys(): ks = KeyJar() ks[""] = KeyBundle([{"kty": "oct", "key": "a1b2c3d4", "use": "sig"}, {"kty": "oct", "key": "a1b2c3d4", "use": "ver"}]) ks["http://www.example.org"] = KeyBundle([ {"kty": "oct", "key": "e5f6g7h8", "use": "sig"}, {"kty": "oct", "key": "e5f6g7h8", "use": "ver"}]) ks["http://www.example.org"].append( keybundle_from_local_file(RSAKEY, "rsa", ["ver", "sig"])) collection = ks.verify_keys("http://www.example.org") assert len(collection) == 3 assert len([k for k in collection if k.kty == "oct"]) == 2 assert len([k for k in collection if k.kty == "RSA"]) == 1
def test_keyjar_pairkeys(): ks = KeyJar() ks[""] = KeyBundle({"hmac": "a1b2c3d4"}, usage=["sig", "ver"]) ks["http://www.example.org"] = KeyBundle({"hmac": "e5f6g7h8"}, usage=["sig", "ver"]) ks["http://www.example.org"].append(KeyBundle({"rsa": "-rsa-key-"}, usage=["enc", "dec"])) ks["http://www.example.org"].append(KeyBundle({"rsa": "i9j10k11l12"}, usage=["sig", "ver"])) collection = ks.verify_keys("http://www.example.org") assert _eq(collection.keys(), ["hmac", "rsa"])
def test_keyjar_group_keys(self): ks = KeyJar() ks[""] = KeyBundle([{"kty": "oct", "key": "a1b2c3d4", "use": "sig"}, {"kty": "oct", "key": "a1b2c3d4", "use": "ver"}]) ks["http://www.example.org"] = KeyBundle([ {"kty": "oct", "key": "e5f6g7h8", "use": "sig"}, {"kty": "oct", "key": "e5f6g7h8", "use": "ver"}]) ks["http://www.example.org"].append( keybundle_from_local_file(RSAKEY, "rsa", ["ver", "sig"])) verified_keys = ks.verify_keys("http://www.example.org") assert len(verified_keys) == 3 assert len([k for k in verified_keys if k.kty == "oct"]) == 2 assert len([k for k in verified_keys if k.kty == "RSA"]) == 1