aboutsummaryrefslogtreecommitdiffstats
path: root/tests/hypothesis
diff options
context:
space:
mode:
Diffstat (limited to 'tests/hypothesis')
-rw-r--r--tests/hypothesis/__init__.py5
-rw-r--r--tests/hypothesis/test_fernet.py16
-rw-r--r--tests/hypothesis/test_padding.py34
3 files changed, 55 insertions, 0 deletions
diff --git a/tests/hypothesis/__init__.py b/tests/hypothesis/__init__.py
new file mode 100644
index 00000000..4b540884
--- /dev/null
+++ b/tests/hypothesis/__init__.py
@@ -0,0 +1,5 @@
+# This file is dual licensed under the terms of the Apache License, Version
+# 2.0, and the BSD License. See the LICENSE file in the root of this repository
+# for complete details.
+
+from __future__ import absolute_import, division, print_function
diff --git a/tests/hypothesis/test_fernet.py b/tests/hypothesis/test_fernet.py
new file mode 100644
index 00000000..75195f53
--- /dev/null
+++ b/tests/hypothesis/test_fernet.py
@@ -0,0 +1,16 @@
+# This file is dual licensed under the terms of the Apache License, Version
+# 2.0, and the BSD License. See the LICENSE file in the root of this repository
+# for complete details.
+
+from hypothesis import HealthCheck, given, settings
+from hypothesis.strategies import binary
+
+from cryptography.fernet import Fernet
+
+
+@settings(suppress_health_check=[HealthCheck.too_slow], deadline=None)
+@given(binary())
+def test_fernet(data):
+ f = Fernet(Fernet.generate_key())
+ ct = f.encrypt(data)
+ assert f.decrypt(ct) == data
diff --git a/tests/hypothesis/test_padding.py b/tests/hypothesis/test_padding.py
new file mode 100644
index 00000000..74a58eb8
--- /dev/null
+++ b/tests/hypothesis/test_padding.py
@@ -0,0 +1,34 @@
+# This file is dual licensed under the terms of the Apache License, Version
+# 2.0, and the BSD License. See the LICENSE file in the root of this repository
+# for complete details.
+
+from hypothesis import HealthCheck, given, settings
+from hypothesis.strategies import binary, integers
+
+from cryptography.hazmat.primitives.padding import ANSIX923, PKCS7
+
+
+@settings(suppress_health_check=[HealthCheck.too_slow], deadline=None)
+@given(integers(min_value=1, max_value=255), binary())
+def test_pkcs7(block_size, data):
+ # Generate in [1, 31] so we can easily get block_size in bits by
+ # multiplying by 8.
+ p = PKCS7(block_size=block_size * 8)
+ padder = p.padder()
+ unpadder = p.unpadder()
+
+ padded = padder.update(data) + padder.finalize()
+
+ assert unpadder.update(padded) + unpadder.finalize() == data
+
+
+@settings(suppress_health_check=[HealthCheck.too_slow])
+@given(integers(min_value=1, max_value=255), binary())
+def test_ansix923(block_size, data):
+ a = ANSIX923(block_size=block_size * 8)
+ padder = a.padder()
+ unpadder = a.unpadder()
+
+ padded = padder.update(data) + padder.finalize()
+
+ assert unpadder.update(padded) + unpadder.finalize() == data