aboutsummaryrefslogtreecommitdiffstats
path: root/tests/hazmat
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2019-01-17 15:56:23 -0600
committerAlex Gaynor <alex.gaynor@gmail.com>2019-01-17 16:56:23 -0500
commita77994408da328e6b0fba331211be9ad2db5c5b6 (patch)
tree240940ee473a526d3438514799665dc4463dc0d8 /tests/hazmat
parent2b40f493bf6f9eb131b46d7ab582b89033bcda64 (diff)
downloadcryptography-a77994408da328e6b0fba331211be9ad2db5c5b6.tar.gz
cryptography-a77994408da328e6b0fba331211be9ad2db5c5b6.tar.bz2
cryptography-a77994408da328e6b0fba331211be9ad2db5c5b6.zip
support byteslike in ConcatKDF{HMAC,Hash}, Scrypt, and X963KDF (#4709)
* byteslike concatkdf * byteslike scrypt * byteslike x963kdf
Diffstat (limited to 'tests/hazmat')
-rw-r--r--tests/hazmat/primitives/test_concatkdf.py35
-rw-r--r--tests/hazmat/primitives/test_scrypt.py13
-rw-r--r--tests/hazmat/primitives/test_x963kdf.py11
3 files changed, 59 insertions, 0 deletions
diff --git a/tests/hazmat/primitives/test_concatkdf.py b/tests/hazmat/primitives/test_concatkdf.py
index aa568c1f..67315099 100644
--- a/tests/hazmat/primitives/test_concatkdf.py
+++ b/tests/hazmat/primitives/test_concatkdf.py
@@ -52,6 +52,22 @@ class TestConcatKDFHash(object):
assert ckdf.derive(prk) == okm
+ def test_buffer_protocol(self, backend):
+ prk = binascii.unhexlify(
+ b"52169af5c485dcc2321eb8d26d5efa21fb9b93c98e38412ee2484cf14f0d0d23"
+ )
+
+ okm = binascii.unhexlify(b"1c3bc9e7c4547c5191c0d478cccaed55")
+
+ oinfo = binascii.unhexlify(
+ b"a1b2c3d4e53728157e634612c12d6d5223e204aeea4341565369647bd184bcd2"
+ b"46f72971f292badaa2fe4124612cba"
+ )
+
+ ckdf = ConcatKDFHash(hashes.SHA256(), 16, oinfo, backend)
+
+ assert ckdf.derive(bytearray(prk)) == okm
+
def test_verify(self, backend):
prk = binascii.unhexlify(
b"52169af5c485dcc2321eb8d26d5efa21fb9b93c98e38412ee2484cf14f0d0d23"
@@ -158,6 +174,25 @@ class TestConcatKDFHMAC(object):
assert ckdf.derive(prk) == okm
+ def test_buffer_protocol(self, backend):
+ prk = binascii.unhexlify(
+ b"013951627c1dea63ea2d7702dd24e963eef5faac6b4af7e4"
+ b"b831cde499dff1ce45f6179f741c728aa733583b02409208"
+ b"8f0af7fce1d045edbc5790931e8d5ca79c73"
+ )
+
+ okm = binascii.unhexlify(b"64ce901db10d558661f10b6836a122a7"
+ b"605323ce2f39bf27eaaac8b34cf89f2f")
+
+ oinfo = binascii.unhexlify(
+ b"a1b2c3d4e55e600be5f367e0e8a465f4bf2704db00c9325c"
+ b"9fbd216d12b49160b2ae5157650f43415653696421e68e"
+ )
+
+ ckdf = ConcatKDFHMAC(hashes.SHA512(), 32, None, oinfo, backend)
+
+ assert ckdf.derive(bytearray(prk)) == okm
+
def test_derive_explicit_salt(self, backend):
prk = binascii.unhexlify(
b"013951627c1dea63ea2d7702dd24e963eef5faac6b4af7e4"
diff --git a/tests/hazmat/primitives/test_scrypt.py b/tests/hazmat/primitives/test_scrypt.py
index 25d2c615..8f3a14ed 100644
--- a/tests/hazmat/primitives/test_scrypt.py
+++ b/tests/hazmat/primitives/test_scrypt.py
@@ -108,6 +108,19 @@ class TestScrypt(object):
with pytest.raises(TypeError):
scrypt.derive(password)
+ def test_buffer_protocol(self, backend):
+ password = bytearray(b"password")
+ work_factor = 256
+ block_size = 8
+ parallelization_factor = 16
+ length = 10
+ salt = b"NaCl"
+
+ scrypt = Scrypt(salt, length, work_factor, block_size,
+ parallelization_factor, backend)
+
+ assert scrypt.derive(password) == b'\xf4\x92\x86\xb2\x06\x0c\x848W\x87'
+
@pytest.mark.parametrize("params", vectors)
def test_verify(self, backend, params):
_skip_if_memory_limited(_MEM_LIMIT, params)
diff --git a/tests/hazmat/primitives/test_x963kdf.py b/tests/hazmat/primitives/test_x963kdf.py
index d87a46b8..c4dd8925 100644
--- a/tests/hazmat/primitives/test_x963kdf.py
+++ b/tests/hazmat/primitives/test_x963kdf.py
@@ -45,6 +45,17 @@ class TestX963KDF(object):
assert xkdf.derive(key) == derivedkey
+ def test_buffer_protocol(self, backend):
+ key = bytearray(binascii.unhexlify(
+ b"96c05619d56c328ab95fe84b18264b08725b85e33fd34f08"
+ ))
+
+ derivedkey = binascii.unhexlify(b"443024c3dae66b95e6f5670601558f71")
+
+ xkdf = X963KDF(hashes.SHA256(), 16, None, backend)
+
+ assert xkdf.derive(key) == derivedkey
+
def test_verify(self, backend):
key = binascii.unhexlify(
b"22518b10e70f2a3f243810ae3254139efbee04aa57c7af7d"