1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
"""
Iterator tests
"""
import pkcs11
from . import TestCase, requires
class IteratorTests(TestCase):
@requires(pkcs11.Mechanism.AES_KEY_GEN, pkcs11.Mechanism.AES_CBC_PAD)
def test_partial_decrypt(self):
self.session.generate_key(pkcs11.KeyType.AES, 128, label="LOOK ME UP")
key = self.session.get_key(label="LOOK ME UP")
data = (
b"1234",
b"1234",
)
iv = self.session.generate_random(128)
encrypted_data = list(key.encrypt(data, mechanism_param=iv))
iter1 = key.decrypt(encrypted_data, mechanism_param=iv)
next(iter1)
with self.assertRaises(pkcs11.OperationActive):
iter2 = key.decrypt(encrypted_data, mechanism_param=iv)
next(iter2)
@requires(pkcs11.Mechanism.AES_KEY_GEN, pkcs11.Mechanism.AES_CBC_PAD)
def test_close_iterators(self):
self.session.generate_key(pkcs11.KeyType.AES, 128, label="LOOK ME UP")
key = self.session.get_key(label="LOOK ME UP")
data = (
b"1234",
b"1234",
)
iv = self.session.generate_random(128)
encrypted_data = list(key.encrypt(data, mechanism_param=iv))
iter1 = key.decrypt(encrypted_data, mechanism_param=iv)
next(iter1)
del iter1
iter2 = key.decrypt(encrypted_data, mechanism_param=iv)
next(iter2)
|