aboutsummaryrefslogtreecommitdiffstats
path: root/tests/hazmat/bindings
diff options
context:
space:
mode:
Diffstat (limited to 'tests/hazmat/bindings')
-rw-r--r--tests/hazmat/bindings/test_openssl.py20
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()