diff options
author | Alex Gaynor <alex.gaynor@gmail.com> | 2015-03-03 18:26:46 -0500 |
---|---|---|
committer | Alex Gaynor <alex.gaynor@gmail.com> | 2015-03-03 18:26:46 -0500 |
commit | 71445561bf0b685ab3d69e441caf81940e9cad4e (patch) | |
tree | 72c9333352dbecdd5ba22a4f07bb8982d93beceb | |
parent | 61d4a956fa552e091e65c4daf13958166fc70d39 (diff) | |
parent | 900657823720f377f81825d0190b5bf64780982b (diff) | |
download | cryptography-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
-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, 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 = """ |