diff options
author | Paul Kehrer <paul.l.kehrer@gmail.com> | 2014-02-08 21:40:06 -0600 |
---|---|---|
committer | Paul Kehrer <paul.l.kehrer@gmail.com> | 2014-02-12 18:50:23 -0600 |
commit | c423f635d16443b0ca7c9fea280575b9035328d0 (patch) | |
tree | 5eb2e030971765a2cd7c9b72fdb2e8047954cf57 /tests/hazmat/primitives | |
parent | ed828e17a6eefca79afcde2f0b9cd63865c7b902 (diff) | |
download | cryptography-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/hazmat/primitives')
-rw-r--r-- | tests/hazmat/primitives/test_cast5.py | 53 |
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)) + ) |