aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/hazmat/backends/test_openssl.py48
-rw-r--r--tests/hazmat/primitives/vectors/KDF/scrypt.txt38
2 files changed, 52 insertions, 34 deletions
diff --git a/tests/hazmat/backends/test_openssl.py b/tests/hazmat/backends/test_openssl.py
index b24808df..42c1b395 100644
--- a/tests/hazmat/backends/test_openssl.py
+++ b/tests/hazmat/backends/test_openssl.py
@@ -71,46 +71,17 @@ class TestOpenSSL(object):
with pytest.raises(UnsupportedAlgorithm):
cipher.encryptor()
- def test_handle_unknown_error(self):
- with pytest.raises(InternalError):
- backend._handle_error_code(0)
-
- backend._lib.ERR_put_error(backend._lib.ERR_LIB_EVP, 0, 0,
- b"test_openssl.py", -1)
- with pytest.raises(InternalError):
- backend._handle_error(None)
-
- backend._lib.ERR_put_error(
- backend._lib.ERR_LIB_EVP,
- backend._lib.EVP_F_EVP_ENCRYPTFINAL_EX,
- 0,
- b"test_openssl.py",
- -1
- )
- with pytest.raises(InternalError):
- backend._handle_error(None)
-
- backend._lib.ERR_put_error(
- backend._lib.ERR_LIB_EVP,
- backend._lib.EVP_F_EVP_DECRYPTFINAL_EX,
- 0,
- b"test_openssl.py",
- -1
- )
- with pytest.raises(InternalError):
- backend._handle_error(None)
-
- def test_handle_multiple_errors(self):
+ def test_consume_errors(self):
for i in range(10):
backend._lib.ERR_put_error(backend._lib.ERR_LIB_EVP, 0, 0,
b"test_openssl.py", -1)
assert backend._lib.ERR_peek_error() != 0
- with pytest.raises(InternalError):
- backend._handle_error(None)
+ errors = backend._consume_errors()
assert backend._lib.ERR_peek_error() == 0
+ assert len(errors) == 10
def test_openssl_error_string(self):
backend._lib.ERR_put_error(
@@ -121,8 +92,8 @@ class TestOpenSSL(object):
-1
)
- with pytest.raises(InternalError) as exc:
- backend._handle_error(None)
+ errors = backend._consume_errors()
+ exc = backend._unknown_error(errors[0])
assert (
"digital envelope routines:"
@@ -147,6 +118,15 @@ class TestOpenSSL(object):
b"data not multiple of block length"
)
+ def test_unknown_error_in_cipher_finalize(self):
+ cipher = Cipher(AES(b"\0" * 16), CBC(b"\0" * 16), backend=backend)
+ enc = cipher.encryptor()
+ enc.update(b"\0")
+ backend._lib.ERR_put_error(0, 0, 1,
+ b"test_openssl.py", -1)
+ with pytest.raises(InternalError):
+ enc.finalize()
+
def test_derive_pbkdf2_raises_unsupported_on_old_openssl(self):
if backend.pbkdf2_hmac_supported(hashes.SHA256()):
pytest.skip("Requires an older OpenSSL")
diff --git a/tests/hazmat/primitives/vectors/KDF/scrypt.txt b/tests/hazmat/primitives/vectors/KDF/scrypt.txt
new file mode 100644
index 00000000..ad0dfc83
--- /dev/null
+++ b/tests/hazmat/primitives/vectors/KDF/scrypt.txt
@@ -0,0 +1,38 @@
+COUNT = 0
+PASSWORD =
+SALT =
+N = 16
+r = 1
+p = 1
+LENGTH = 64
+DERIVED_KEY = 77d6576238657b203b19ca42c18a0497f16b4844e3074ae8dfdffa3fede21442fcd0069ded0948f8326a753a0fc81f17e8d3e0fb2e0d3628cf35e20c38d18906
+
+
+COUNT = 1
+PASSWORD = password
+SALT = NaCl
+N = 1024
+r = 8
+p = 16
+LENGTH = 64
+DERIVED_KEY = fdbabe1c9d3472007856e7190d01e9fe7c6ad7cbc8237830e77376634b3731622eaf30d92e22a3886ff109279d9830dac727afb94a83ee6d8360cbdfa2cc0640
+
+
+COUNT = 2
+PASSWORD = pleaseletmein
+SALT = SodiumChloride
+N = 16384
+r = 8
+p = 1
+LENGTH = 64
+DERIVED_KEY = 7023bdcb3afd7348461c06cd81fd38ebfda8fbba904f8e3ea9b543f6545da1f2d5432955613f0fcf62d49705242a9af9e61e85dc0d651e40dfcf017b45575887
+
+
+COUNT = 3
+PASSWORD = pleaseletmein
+SALT = SodiumChloride
+N = 1048576
+r = 8
+p = 1
+LENGTH = 64
+DERIVED_KEY = 2101cb9b6a511aaeaddbbe09cf70f881ec568d574a2ffd4dabe5ee9820adaa478e56fd8f4ba5d09ffa1c6d927c40f4c337304049e8a952fbcbf45c6fa77a41a4