diff options
author | Alex Gaynor <alex.gaynor@gmail.com> | 2014-07-10 09:46:18 -0700 |
---|---|---|
committer | Alex Gaynor <alex.gaynor@gmail.com> | 2014-07-10 09:46:18 -0700 |
commit | 209c2f3fa85358e27264aecfe2daa55131c2caa3 (patch) | |
tree | b066c697cdd69c59d9022754a57ebafddb0b690c | |
parent | a9d14965880829535859343db2494822580dd884 (diff) | |
download | cryptography-209c2f3fa85358e27264aecfe2daa55131c2caa3.tar.gz cryptography-209c2f3fa85358e27264aecfe2daa55131c2caa3.tar.bz2 cryptography-209c2f3fa85358e27264aecfe2daa55131c2caa3.zip |
Factor out the key loading logic to make it easier to have other key loading schemes
-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() |