예제 #1
0
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 == []
예제 #2
0
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 == {}
예제 #3
0
    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
예제 #4
0
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
예제 #5
0
    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 == []
예제 #6
0
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
예제 #7
0
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"])
예제 #8
0
    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