aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2015-03-03 21:42:17 -0600
committerPaul Kehrer <paul.l.kehrer@gmail.com>2015-03-03 21:42:17 -0600
commitd39c560471422b5b0f6d9000bfa0af987cd04d67 (patch)
tree46190beb2921a79982bd795d4300e9ed92c5a225
parent71445561bf0b685ab3d69e441caf81940e9cad4e (diff)
downloadcryptography-d39c560471422b5b0f6d9000bfa0af987cd04d67.tar.gz
cryptography-d39c560471422b5b0f6d9000bfa0af987cd04d67.tar.bz2
cryptography-d39c560471422b5b0f6d9000bfa0af987cd04d67.zip
Revert "simplify our DSA parameter copying"
This reverts commit 900657823720f377f81825d0190b5bf64780982b. Turns out the way this macro is defined in older OpenSSLs does not play nice with older gcc. See: https://rt.openssl.org/Ticket/Display.html?id=1546&user=guest&pass=guest
-rw-r--r--src/cryptography/hazmat/backends/openssl/backend.py5
-rw-r--r--src/cryptography/hazmat/bindings/openssl/dsa.py2
2 files changed, 4 insertions, 3 deletions
diff --git a/src/cryptography/hazmat/backends/openssl/backend.py b/src/cryptography/hazmat/backends/openssl/backend.py
index c807b629..de653032 100644
--- a/src/cryptography/hazmat/backends/openssl/backend.py
+++ b/src/cryptography/hazmat/backends/openssl/backend.py
@@ -602,9 +602,12 @@ class Backend(object):
return _DSAParameters(self, ctx)
def generate_dsa_private_key(self, parameters):
- ctx = self._lib.DSAparams_dup(parameters._dsa_cdata)
+ ctx = self._lib.DSA_new()
assert ctx != self._ffi.NULL
ctx = self._ffi.gc(ctx, self._lib.DSA_free)
+ ctx.p = self._lib.BN_dup(parameters._dsa_cdata.p)
+ ctx.q = self._lib.BN_dup(parameters._dsa_cdata.q)
+ ctx.g = self._lib.BN_dup(parameters._dsa_cdata.g)
self._lib.DSA_generate_key(ctx)
diff --git a/src/cryptography/hazmat/bindings/openssl/dsa.py b/src/cryptography/hazmat/bindings/openssl/dsa.py
index 4261d4bd..99a685df 100644
--- a/src/cryptography/hazmat/bindings/openssl/dsa.py
+++ b/src/cryptography/hazmat/bindings/openssl/dsa.py
@@ -48,8 +48,6 @@ int DSA_verify(int, const unsigned char *, int, const unsigned char *, int,
MACROS = """
int DSA_generate_parameters_ex(DSA *, int, unsigned char *, int,
int *, unsigned long *, BN_GENCB *);
-// This is a macro in OpenSSL < 1.0.0
-DSA *DSAparams_dup(DSA *);
"""
CUSTOMIZATIONS = """