aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2014-02-08 21:40:06 -0600
committerPaul Kehrer <paul.l.kehrer@gmail.com>2014-02-12 18:50:23 -0600
commitc423f635d16443b0ca7c9fea280575b9035328d0 (patch)
tree5eb2e030971765a2cd7c9b72fdb2e8047954cf57 /tests
parented828e17a6eefca79afcde2f0b9cd63865c7b902 (diff)
downloadcryptography-c423f635d16443b0ca7c9fea280575b9035328d0.tar.gz
cryptography-c423f635d16443b0ca7c9fea280575b9035328d0.tar.bz2
cryptography-c423f635d16443b0ca7c9fea280575b9035328d0.zip
add cbc, cfb, ofb support to CAST5 (aka CAST128) for openssl & cc
fixes #393
Diffstat (limited to 'tests')
-rw-r--r--tests/hazmat/primitives/test_cast5.py53
1 files changed, 52 insertions, 1 deletions
diff --git a/tests/hazmat/primitives/test_cast5.py b/tests/hazmat/primitives/test_cast5.py
index d65a86b2..682b4496 100644
--- a/tests/hazmat/primitives/test_cast5.py
+++ b/tests/hazmat/primitives/test_cast5.py
@@ -31,7 +31,7 @@ from ...utils import load_nist_vectors
skip_message="Does not support CAST5 ECB",
)
@pytest.mark.cipher
-class TestCAST5(object):
+class TestCAST5_ECB(object):
test_ECB = generate_encrypt_test(
load_nist_vectors,
os.path.join("ciphers", "CAST5"),
@@ -39,3 +39,54 @@ class TestCAST5(object):
lambda key, **kwargs: algorithms.CAST5(binascii.unhexlify((key))),
lambda **kwargs: modes.ECB(),
)
+
+
+@pytest.mark.supported(
+ only_if=lambda backend: backend.cipher_supported(
+ algorithms.CAST5("\x00" * 16), modes.CBC("\x00" * 8)
+ ),
+ skip_message="Does not support CAST5 CBC",
+)
+@pytest.mark.cipher
+class TestCAST5_CBC(object):
+ test_CBC = generate_encrypt_test(
+ load_nist_vectors,
+ os.path.join("ciphers", "CAST5"),
+ ["cast5-cbc.txt"],
+ lambda key, **kwargs: algorithms.CAST5(binascii.unhexlify((key))),
+ lambda iv, **kwargs: modes.CBC(binascii.unhexlify(iv))
+ )
+
+
+@pytest.mark.supported(
+ only_if=lambda backend: backend.cipher_supported(
+ algorithms.CAST5("\x00" * 16), modes.OFB("\x00" * 8)
+ ),
+ skip_message="Does not support CAST5 OFB",
+)
+@pytest.mark.cipher
+class TestCAST5_OFB(object):
+ test_OFB = generate_encrypt_test(
+ load_nist_vectors,
+ os.path.join("ciphers", "CAST5"),
+ ["cast5-ofb.txt"],
+ lambda key, **kwargs: algorithms.CAST5(binascii.unhexlify((key))),
+ lambda iv, **kwargs: modes.OFB(binascii.unhexlify(iv))
+ )
+
+
+@pytest.mark.supported(
+ only_if=lambda backend: backend.cipher_supported(
+ algorithms.CAST5("\x00" * 16), modes.CFB("\x00" * 8)
+ ),
+ skip_message="Does not support CAST5 CFB",
+)
+@pytest.mark.cipher
+class TestCAST5_CFB(object):
+ test_CFB = generate_encrypt_test(
+ load_nist_vectors,
+ os.path.join("ciphers", "CAST5"),
+ ["cast5-cfb.txt"],
+ lambda key, **kwargs: algorithms.CAST5(binascii.unhexlify((key))),
+ lambda iv, **kwargs: modes.CFB(binascii.unhexlify(iv))
+ )