Update KeyRing tests to use the pubkey param on encryption

Fix keypair components
pull/43/head
tuxxy 2017-09-19 08:58:23 -07:00
parent e2e63ad38b
commit 603486b5d1
2 changed files with 30 additions and 38 deletions

View File

@ -13,25 +13,19 @@ class TestSigningKeypair(unittest.TestCase):
msg_digest = sha3.keccak_256(self.msg).digest()
signature = self.keypair.sign(msg_digest)
try:
sig = msgpack.loads(signature)
self.assertTrue(1, len(sig[0])) # Check v
self.assertTrue(32, len(sig[1])) # Check r
self.assertTrue(32, len(sig[2])) # Check s
except Exception as e:
self.fail("Failed to msgpack.load signature: {}".format(e))
sig = msgpack.loads(signature)
self.assertTrue(1, len(sig[0])) # Check v
self.assertTrue(32, len(sig[1])) # Check r
self.assertTrue(32, len(sig[2])) # Check s
def test_verification(self):
msg_digest = sha3.keccak_256(self.msg).digest()
signature = self.keypair.sign(msg_digest)
try:
sig = msgpack.loads(signature)
self.assertTrue(1, len(sig[0])) # Check v
self.assertTrue(32, len(sig[1])) # Check r
self.assertTrue(32, len(sig[2])) # Check s
except Exception as e:
self.fail("Failed to msgpack.load signature: {}".format(e))
sig = msgpack.loads(signature)
self.assertTrue(1, len(sig[0])) # Check v
self.assertTrue(32, len(sig[1])) # Check r
self.assertTrue(32, len(sig[2])) # Check s
verify_sig = self.keypair.verify(msg_digest, signature)
self.assertTrue(verify_sig)

View File

@ -5,41 +5,39 @@ from nkms.crypto.keyring import KeyRing
class TestKeyRing(unittest.TestCase):
def setUp(self):
self.keyring = KeyRing()
self.keyring_a = KeyRing()
self.keyring_b = KeyRing()
self.msg = b'this is a test'
def test_signing(self):
signature = self.keyring.sign(self.msg)
signature = self.keyring_a.sign(self.msg)
try:
sig = msgpack.loads(signature)
self.assertTrue(1, len(sig[0])) # Check v
self.assertTrue(32, len(sig[1])) # Check r
self.assertTrue(32, len(sig[2])) # Check s
except Exception as e:
self.fail("Signature failed to msgpack.loads: {}".format(e))
sig = msgpack.loads(signature)
self.assertTrue(1, len(sig[0])) # Check v
self.assertTrue(32, len(sig[1])) # Check r
self.assertTrue(32, len(sig[2])) # Check s
def test_verification(self):
signature = self.keyring.sign(self.msg)
signature = self.keyring_a.sign(self.msg)
try:
sig = msgpack.loads(signature)
self.assertTrue(1, len(sig[0])) # Check v
self.assertTrue(32, len(sig[1])) # Check r
self.assertTrue(32, len(sig[2])) # Check s
except Exception as e:
self.fail("Signature failed to msgpack.loads: {}".format(e))
sig = msgpack.loads(signature)
self.assertTrue(1, len(sig[0])) # Check v
self.assertTrue(32, len(sig[1])) # Check r
self.assertTrue(32, len(sig[2])) # Check s
is_valid = self.keyring.verify(self.msg, signature)
is_valid = self.keyring_a.verify(self.msg, signature)
self.assertTrue(is_valid)
def test_encryption(self):
ciphertext = self.keyring.encrypt(self.msg)
self.assertTrue(self.msg != ciphertext)
ciphertext = self.keyring_a.encrypt(self.msg,
pubkey=self.keyring_b.enc_keypair.pub_key)
self.assertNotEqual(self.msg, ciphertext)
def test_decryption(self):
ciphertext = self.keyring.encrypt(self.msg)
self.assertTrue(self.msg != ciphertext)
ciphertext = self.keyring_a.encrypt(self.msg,
pubkey=self.keyring_b.enc_keypair.pub_key)
self.assertNotEqual(self.msg, ciphertext)
plaintext = self.keyring.decrypt(ciphertext)
self.assertTrue(self.msg == plaintext)
plaintext = self.keyring_b.decrypt(ciphertext)
self.assertEqual(self.msg, plaintext)