mirror of https://github.com/nucypher/nucypher.git
Add tests and fix encrypt/decrypt issues
parent
ed47bdf79b
commit
84d183ba7c
|
@ -241,8 +241,9 @@ class EncryptingPower(CryptoPowerUp):
|
|||
"""
|
||||
pubkey = pubkey or self.pub_key
|
||||
|
||||
key, enc_key = API.ecies_encaspulate(pubkey)
|
||||
key, enc_key = API.ecies_encapsulate(pubkey)
|
||||
enc_data = API.symm_encrypt(key, data)
|
||||
|
||||
return (enc_data, API.elliptic_curve.serialize(enc_key.ekey))
|
||||
|
||||
def decrypt(
|
||||
|
@ -261,7 +262,10 @@ class EncryptingPower(CryptoPowerUp):
|
|||
"""
|
||||
privkey = privkey or self.priv_key
|
||||
ciphertext, enc_key = enc_data
|
||||
enc_key = API.elliptic_curve.deserialize(enc_key)
|
||||
|
||||
enc_key = API.elliptic_curve.deserialize(API.PRE.ecgroup, enc_key)
|
||||
enc_key = API.umbral.EncryptedKey(ekey=enc_key, re_id=None)
|
||||
|
||||
dec_key = API.ecies_decapsulate(privkey, enc_key)
|
||||
|
||||
return API.symm_decrypt(dec_key, ciphertext)
|
||||
|
|
|
@ -0,0 +1,36 @@
|
|||
import unittest
|
||||
from nkms.crypto.powers import EncryptingPower
|
||||
from nkms.keystore.keypairs import EncryptingKeypair
|
||||
|
||||
|
||||
class TestEncryptingPowers(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.enc_keypair = EncryptingKeypair()
|
||||
self.enc_keypair.gen_privkey()
|
||||
|
||||
self.enc_power = EncryptingPower(self.enc_keypair)
|
||||
|
||||
def test_encryption(self):
|
||||
data = b'hello world'
|
||||
|
||||
enc_data = self.enc_power.encrypt(data)
|
||||
self.assertTrue(tuple, type(enc_data))
|
||||
self.assertEqual(2, len(enc_data))
|
||||
self.assertTrue(bytes, type(enc_data[0]))
|
||||
self.assertTrue(bytes, type(enc_data[1]))
|
||||
|
||||
self.assertNotEqual(data, enc_data[0])
|
||||
|
||||
def test_decryption(self):
|
||||
data = b'hello world'
|
||||
|
||||
enc_data = self.enc_power.encrypt(data)
|
||||
self.assertTrue(tuple, type(enc_data))
|
||||
self.assertEqual(2, len(enc_data))
|
||||
self.assertTrue(bytes, type(enc_data[0]))
|
||||
self.assertTrue(bytes, type(enc_data[1]))
|
||||
self.assertNotEqual(data, enc_data[0])
|
||||
|
||||
dec_data = self.enc_power.decrypt(enc_data)
|
||||
self.assertTrue(bytes, type(dec_data))
|
||||
self.assertEqual(data, dec_data)
|
Loading…
Reference in New Issue