diff options
Diffstat (limited to 'tests/hazmat/bindings')
-rw-r--r-- | tests/hazmat/bindings/test_openssl.py | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/tests/hazmat/bindings/test_openssl.py b/tests/hazmat/bindings/test_openssl.py index fb01c10a..3523fa4e 100644 --- a/tests/hazmat/bindings/test_openssl.py +++ b/tests/hazmat/bindings/test_openssl.py @@ -11,11 +11,15 @@ # See the License for the specific language governing permissions and # limitations under the License. +import binascii + import pytest +from cryptography.exceptions import UnsupportedAlgorithm from cryptography.hazmat.bindings.openssl.backend import backend, Backend -from cryptography.hazmat.primitives.block.ciphers import AES -from cryptography.hazmat.primitives.block.modes import CBC +from cryptography.hazmat.primitives.block import BlockCipher +from cryptography.hazmat.primitives.block.ciphers import AES, TripleDES +from cryptography.hazmat.primitives.block.modes import CBC, ECB class TestOpenSSL(object): @@ -44,3 +48,15 @@ class TestOpenSSL(object): b = Backend() assert b.ffi is backend.ffi assert b.lib is backend.lib + + def test_nonexistent_cipher(self): + b = Backend() + # TODO: this test assumes that 3DES-ECB doesn't exist + b.ciphers.register_cipher_adapter( + TripleDES, ECB, lambda backend, cipher, mode: backend.ffi.NULL + ) + cipher = BlockCipher( + TripleDES(binascii.unhexlify(b"0" * 16)), ECB(), backend=b + ) + with pytest.raises(UnsupportedAlgorithm): + cipher.encryptor() |