diff options
-rw-r--r-- | src/cryptography/hazmat/backends/openssl/backend.py | 11 | ||||
-rw-r--r-- | src/cryptography/hazmat/backends/openssl/dsa.py | 1 | ||||
-rw-r--r-- | src/cryptography/hazmat/backends/openssl/ec.py | 1 | ||||
-rw-r--r-- | src/cryptography/hazmat/backends/openssl/rsa.py | 1 |
4 files changed, 9 insertions, 5 deletions
diff --git a/src/cryptography/hazmat/backends/openssl/backend.py b/src/cryptography/hazmat/backends/openssl/backend.py index 25cce6e9..6b5c1a0c 100644 --- a/src/cryptography/hazmat/backends/openssl/backend.py +++ b/src/cryptography/hazmat/backends/openssl/backend.py @@ -1124,7 +1124,7 @@ class Backend(object): return ctx def _private_key_bytes(self, encoding, format, encryption_algorithm, - traditional_write_func, evp_pkey, cdata): + evp_pkey, cdata): if not isinstance(encoding, serialization.Encoding): raise TypeError("encoding must be an item from the Encoding enum") @@ -1141,7 +1141,14 @@ class Backend(object): write_bio = self._lib.PEM_write_bio_PKCS8PrivateKey key = evp_pkey elif format is serialization.PrivateFormat.TraditionalOpenSSL: - write_bio = traditional_write_func + if evp_pkey.type == self._lib.EVP_PKEY_RSA: + write_bio = self._lib.PEM_write_bio_RSAPrivateKey + elif evp_pkey.type == self._lib.EVP_PKEY_DSA: + write_bio = self._lib.PEM_write_bio_DSAPrivateKey + elif (self._lib.Cryptography_HAS_EC == 1 and + evp_pkey.type == self._lib.EVP_PKEY_EC): + write_bio = self._lib.PEM_write_bio_ECPrivateKey + key = cdata if not isinstance(encryption_algorithm, diff --git a/src/cryptography/hazmat/backends/openssl/dsa.py b/src/cryptography/hazmat/backends/openssl/dsa.py index 4e9ab3df..43c077dd 100644 --- a/src/cryptography/hazmat/backends/openssl/dsa.py +++ b/src/cryptography/hazmat/backends/openssl/dsa.py @@ -168,7 +168,6 @@ class _DSAPrivateKey(object): encoding, format, encryption_algorithm, - self._backend._lib.PEM_write_bio_DSAPrivateKey, evp_pkey, self._dsa_cdata ) diff --git a/src/cryptography/hazmat/backends/openssl/ec.py b/src/cryptography/hazmat/backends/openssl/ec.py index 76c529db..393a991f 100644 --- a/src/cryptography/hazmat/backends/openssl/ec.py +++ b/src/cryptography/hazmat/backends/openssl/ec.py @@ -212,7 +212,6 @@ class _EllipticCurvePrivateKey(object): encoding, format, encryption_algorithm, - self._backend._lib.PEM_write_bio_ECPrivateKey, evp_pkey, self._ec_key ) diff --git a/src/cryptography/hazmat/backends/openssl/rsa.py b/src/cryptography/hazmat/backends/openssl/rsa.py index 8aafa8a7..30f79912 100644 --- a/src/cryptography/hazmat/backends/openssl/rsa.py +++ b/src/cryptography/hazmat/backends/openssl/rsa.py @@ -566,7 +566,6 @@ class _RSAPrivateKey(object): encoding, format, encryption_algorithm, - self._backend._lib.PEM_write_bio_RSAPrivateKey, self._evp_pkey, self._rsa_cdata ) |