diff options
author | Paul Kehrer <paul.l.kehrer@gmail.com> | 2015-03-03 21:42:17 -0600 |
---|---|---|
committer | Paul Kehrer <paul.l.kehrer@gmail.com> | 2015-03-03 21:42:17 -0600 |
commit | d39c560471422b5b0f6d9000bfa0af987cd04d67 (patch) | |
tree | 46190beb2921a79982bd795d4300e9ed92c5a225 | |
parent | 71445561bf0b685ab3d69e441caf81940e9cad4e (diff) | |
download | cryptography-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.py | 5 | ||||
-rw-r--r-- | src/cryptography/hazmat/bindings/openssl/dsa.py | 2 |
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 = """ |