aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2015-03-11 12:01:11 -0500
committerPaul Kehrer <paul.l.kehrer@gmail.com>2015-03-11 12:01:11 -0500
commitf9312d5f85ac19a9c0122ea8caa9c596db9a1f15 (patch)
treef35a13e199651feb7b1e9eb2c233af8627b742ca /src
parentb9287cac82a06fde4e474d88ee1989efd7144dff (diff)
downloadcryptography-f9312d5f85ac19a9c0122ea8caa9c596db9a1f15.tar.gz
cryptography-f9312d5f85ac19a9c0122ea8caa9c596db9a1f15.tar.bz2
cryptography-f9312d5f85ac19a9c0122ea8caa9c596db9a1f15.zip
refactor OpenSSL backend private_key_bytes
Diffstat (limited to 'src')
-rw-r--r--src/cryptography/hazmat/backends/openssl/backend.py11
-rw-r--r--src/cryptography/hazmat/backends/openssl/dsa.py1
-rw-r--r--src/cryptography/hazmat/backends/openssl/ec.py1
-rw-r--r--src/cryptography/hazmat/backends/openssl/rsa.py1
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
)