diff options
-rw-r--r-- | cryptography/hazmat/backends/openssl/backend.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/cryptography/hazmat/backends/openssl/backend.py b/cryptography/hazmat/backends/openssl/backend.py index da52799c..0d71818f 100644 --- a/cryptography/hazmat/backends/openssl/backend.py +++ b/cryptography/hazmat/backends/openssl/backend.py @@ -766,11 +766,19 @@ class Backend(object): return self.load_pkcs8_pem_private_key(data, password) def load_pkcs8_pem_private_key(self, data, password): + return self._load_key( + self._lib.PEM_read_bio_PrivateKey, + self._evp_pkey_to_private_key, + data, + password, + ) + + def _load_key(self, openssl_read_func, convert_func, data, password): mem_bio = self._bytes_to_bio(data) password_callback, password_func = self._pem_password_cb(password) - evp_pkey = self._lib.PEM_read_bio_PrivateKey( + evp_pkey = openssl_read_func( mem_bio.bio, self._ffi.NULL, password_callback, @@ -791,7 +799,7 @@ class Backend(object): password is None ) - return self._evp_pkey_to_private_key(evp_pkey) + return convert_func(evp_pkey) def _handle_key_loading_error(self, password): errors = self._consume_errors() |