2018-02-11 04:26:56 +00:00
|
|
|
import pytest
|
2017-12-04 23:23:40 +00:00
|
|
|
|
2018-02-11 04:26:56 +00:00
|
|
|
from datetime import datetime
|
2017-10-11 20:02:27 +00:00
|
|
|
from nkms.keystore import keystore, keypairs
|
2017-11-12 02:35:39 +00:00
|
|
|
from nkms.crypto import api as API
|
2018-02-11 04:26:56 +00:00
|
|
|
from umbral.keys import UmbralPrivateKey
|
2017-10-11 20:02:27 +00:00
|
|
|
|
|
|
|
|
2018-02-11 04:26:56 +00:00
|
|
|
def test_key_sqlite_keystore(test_keystore):
|
|
|
|
keypair = keypairs.SigningKeypair(generate_keys_if_needed=True)
|
|
|
|
|
|
|
|
# Test add pubkey
|
2018-02-13 21:26:38 +00:00
|
|
|
test_keystore.add_key(keypair)
|
2018-02-11 04:26:56 +00:00
|
|
|
|
|
|
|
# Test get pubkey
|
2018-02-13 21:26:38 +00:00
|
|
|
query_key = test_keystore.get_key(keypair.get_fingerprint())
|
|
|
|
assert keypair.serialize_pubkey() == query_key.serialize_pubkey()
|
2018-02-11 04:26:56 +00:00
|
|
|
|
|
|
|
# Test del pubkey
|
2018-02-13 21:26:38 +00:00
|
|
|
test_keystore.del_key(keypair.get_fingerprint())
|
2018-02-11 04:26:56 +00:00
|
|
|
with pytest.raises(keystore.NotFound):
|
2018-02-13 21:26:38 +00:00
|
|
|
del_key = test_keystore.get_key(keypair.get_fingerprint())
|
2018-02-11 04:26:56 +00:00
|
|
|
|
2018-02-13 20:28:39 +00:00
|
|
|
|
2018-02-11 04:26:56 +00:00
|
|
|
def test_policy_contract_sqlite_keystore(test_keystore):
|
|
|
|
alice_keypair_sig = keypairs.SigningKeypair(generate_keys_if_needed=True)
|
|
|
|
alice_keypair_enc = keypairs.EncryptingKeypair(generate_keys_if_needed=True)
|
|
|
|
bob_keypair_sig = keypairs.SigningKeypair(generate_keys_if_needed=True)
|
|
|
|
|
|
|
|
hrac = b'test'
|
|
|
|
|
|
|
|
# Test add PolicyContract
|
|
|
|
new_contract = test_keystore.add_policy_contract(
|
2018-02-13 22:38:33 +00:00
|
|
|
datetime.utcnow(), b'test', hrac, alice_pubkey_sig=alice_keypair_sig,
|
|
|
|
alice_signature=b'test'
|
2018-02-11 04:26:56 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
# Test get PolicyContract
|
|
|
|
query_contract = test_keystore.get_policy_contract(hrac)
|
|
|
|
assert new_contract == query_contract
|
|
|
|
|
|
|
|
# Test del PolicyContract
|
|
|
|
test_keystore.del_policy_contract(hrac)
|
|
|
|
with pytest.raises(keystore.NotFound):
|
|
|
|
del_key = test_keystore.get_policy_contract(hrac)
|
|
|
|
|
|
|
|
|
|
|
|
def test_workorder_sqlite_keystore(test_keystore):
|
|
|
|
bob_keypair_sig1 = keypairs.SigningKeypair(generate_keys_if_needed=True)
|
2018-02-13 20:28:39 +00:00
|
|
|
bob_keypair_sig2 = keypairs.SigningKeypair(generate_keys_if_needed=True)
|
2018-02-11 04:26:56 +00:00
|
|
|
|
|
|
|
hrac = b'test'
|
|
|
|
|
|
|
|
# Test add workorder
|
2018-02-13 20:28:39 +00:00
|
|
|
new_workorder1 = test_keystore.add_workorder(bob_keypair_sig1, b'test0', hrac)
|
|
|
|
new_workorder2 = test_keystore.add_workorder(bob_keypair_sig2, b'test1', hrac)
|
2018-02-11 04:26:56 +00:00
|
|
|
|
|
|
|
# Test get workorder
|
|
|
|
query_workorders = test_keystore.get_workorders(hrac)
|
|
|
|
assert set([new_workorder1, new_workorder2]).issubset(query_workorders)
|
|
|
|
|
|
|
|
# Test del workorder
|
|
|
|
test_keystore.del_workorders(hrac)
|
|
|
|
with pytest.raises(keystore.NotFound):
|
|
|
|
del_key = test_keystore.get_workorders(hrac)
|