aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlex Gaynor <alex.gaynor@gmail.com>2015-03-03 18:26:46 -0500
committerAlex Gaynor <alex.gaynor@gmail.com>2015-03-03 18:26:46 -0500
commit71445561bf0b685ab3d69e441caf81940e9cad4e (patch)
tree72c9333352dbecdd5ba22a4f07bb8982d93beceb /src
parent61d4a956fa552e091e65c4daf13958166fc70d39 (diff)
parent900657823720f377f81825d0190b5bf64780982b (diff)
downloadcryptography-71445561bf0b685ab3d69e441caf81940e9cad4e.tar.gz
cryptography-71445561bf0b685ab3d69e441caf81940e9cad4e.tar.bz2
cryptography-71445561bf0b685ab3d69e441caf81940e9cad4e.zip
Merge pull request #1717 from reaperhulk/dsa-use-params-dup
simplify our DSA parameter copying
Diffstat (limited to 'src')
-rw-r--r--src/cryptography/hazmat/backends/openssl/backend.py5
-rw-r--r--src/cryptography/hazmat/bindings/openssl/dsa.py2
2 files changed, 3 insertions, 4 deletions
diff --git a/src/cryptography/hazmat/backends/openssl/backend.py b/src/cryptography/hazmat/backends/openssl/backend.py
index de653032..c807b629 100644
--- a/src/cryptography/hazmat/backends/openssl/backend.py
+++ b/src/cryptography/hazmat/backends/openssl/backend.py
@@ -602,12 +602,9 @@ class Backend(object):
return _DSAParameters(self, ctx)
def generate_dsa_private_key(self, parameters):
- ctx = self._lib.DSA_new()
+ ctx = self._lib.DSAparams_dup(parameters._dsa_cdata)
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 99a685df..4261d4bd 100644
--- a/src/cryptography/hazmat/bindings/openssl/dsa.py
+++ b/src/cryptography/hazmat/bindings/openssl/dsa.py
@@ -48,6 +48,8 @@ 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 = """