aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2019-01-17 15:53:16 -0600
committerAlex Gaynor <alex.gaynor@gmail.com>2019-01-17 16:53:16 -0500
commit62e22a5fb9d3e093f44b4075c7ddb5807d66409b (patch)
treed8b001ebeb9d26c731c14a441933b0045fd35f6a /src
parent7f63e5b65d14dca6c4783d62fa5937a5a5c705e7 (diff)
downloadcryptography-62e22a5fb9d3e093f44b4075c7ddb5807d66409b.tar.gz
cryptography-62e22a5fb9d3e093f44b4075c7ddb5807d66409b.tar.bz2
cryptography-62e22a5fb9d3e093f44b4075c7ddb5807d66409b.zip
Support byteslike in HKDF and PBKDF2HMAC (#4707)
* support byteslike in HKDF * support byteslike in PBKDF2HMAC * add missing docs
Diffstat (limited to 'src')
-rw-r--r--src/cryptography/hazmat/backends/openssl/backend.py3
-rw-r--r--src/cryptography/hazmat/primitives/kdf/hkdf.py4
-rw-r--r--src/cryptography/hazmat/primitives/kdf/pbkdf2.py2
3 files changed, 5 insertions, 4 deletions
diff --git a/src/cryptography/hazmat/backends/openssl/backend.py b/src/cryptography/hazmat/backends/openssl/backend.py
index 2db63a27..f74c955a 100644
--- a/src/cryptography/hazmat/backends/openssl/backend.py
+++ b/src/cryptography/hazmat/backends/openssl/backend.py
@@ -297,8 +297,9 @@ class Backend(object):
key_material):
buf = self._ffi.new("unsigned char[]", length)
evp_md = self._evp_md_non_null_from_algorithm(algorithm)
+ key_material_ptr = self._ffi.from_buffer(key_material)
res = self._lib.PKCS5_PBKDF2_HMAC(
- key_material,
+ key_material_ptr,
len(key_material),
salt,
len(salt),
diff --git a/src/cryptography/hazmat/primitives/kdf/hkdf.py b/src/cryptography/hazmat/primitives/kdf/hkdf.py
index 27dc9c93..307f91cc 100644
--- a/src/cryptography/hazmat/primitives/kdf/hkdf.py
+++ b/src/cryptography/hazmat/primitives/kdf/hkdf.py
@@ -43,7 +43,7 @@ class HKDF(object):
return h.finalize()
def derive(self, key_material):
- utils._check_bytes("key_material", key_material)
+ utils._check_byteslike("key_material", key_material)
return self._hkdf_expand.derive(self._extract(key_material))
def verify(self, key_material, expected_key):
@@ -98,7 +98,7 @@ class HKDFExpand(object):
return b"".join(output)[:self._length]
def derive(self, key_material):
- utils._check_bytes("key_material", key_material)
+ utils._check_byteslike("key_material", key_material)
if self._used:
raise AlreadyFinalized
diff --git a/src/cryptography/hazmat/primitives/kdf/pbkdf2.py b/src/cryptography/hazmat/primitives/kdf/pbkdf2.py
index fbe8964d..a47b7bbc 100644
--- a/src/cryptography/hazmat/primitives/kdf/pbkdf2.py
+++ b/src/cryptography/hazmat/primitives/kdf/pbkdf2.py
@@ -41,7 +41,7 @@ class PBKDF2HMAC(object):
raise AlreadyFinalized("PBKDF2 instances can only be used once.")
self._used = True
- utils._check_bytes("key_material", key_material)
+ utils._check_byteslike("key_material", key_material)
return self._backend.derive_pbkdf2_hmac(
self._algorithm,
self._length,