From c423f635d16443b0ca7c9fea280575b9035328d0 Mon Sep 17 00:00:00 2001 From: Paul Kehrer Date: Sat, 8 Feb 2014 21:40:06 -0600 Subject: add cbc, cfb, ofb support to CAST5 (aka CAST128) for openssl & cc fixes #393 --- tests/hazmat/primitives/test_cast5.py | 53 ++++++++++++++++++++++++++++++++++- 1 file changed, 52 insertions(+), 1 deletion(-) (limited to 'tests/hazmat/primitives') 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)) + ) -- cgit v1.2.3