aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAlex Gaynor <alex.gaynor@gmail.com>2016-06-21 00:56:04 -0400
committerPaul Kehrer <paul.l.kehrer@gmail.com>2016-06-20 23:56:04 -0500
commit72a7b9b5fa5e39c99dd08428e687f281e00cfe1c (patch)
tree1776afd03350defcda7155c07fceab813473de6b /src
parentc3058a38a51b78ef455fbd1862cfb2d040248688 (diff)
downloadcryptography-72a7b9b5fa5e39c99dd08428e687f281e00cfe1c.tar.gz
cryptography-72a7b9b5fa5e39c99dd08428e687f281e00cfe1c.tar.bz2
cryptography-72a7b9b5fa5e39c99dd08428e687f281e00cfe1c.zip
Use DSAparams_dup in yet another please (#3007)
Diffstat (limited to 'src')
-rw-r--r--src/cryptography/hazmat/backends/openssl/dsa.py29
1 files changed, 2 insertions, 27 deletions
diff --git a/src/cryptography/hazmat/backends/openssl/dsa.py b/src/cryptography/hazmat/backends/openssl/dsa.py
index 1e75dff9..1012d044 100644
--- a/src/cryptography/hazmat/backends/openssl/dsa.py
+++ b/src/cryptography/hazmat/backends/openssl/dsa.py
@@ -181,23 +181,11 @@ class _DSAPrivateKey(object):
return _DSAPublicKey(self._backend, dsa_cdata, evp_pkey)
def parameters(self):
- dsa_cdata = self._backend._lib.DSA_new()
+ dsa_cdata = self._backend._lib.DSAparams_dup(self._dsa_cdata)
self._backend.openssl_assert(dsa_cdata != self._backend._ffi.NULL)
dsa_cdata = self._backend._ffi.gc(
dsa_cdata, self._backend._lib.DSA_free
)
- p = self._backend._ffi.new("BIGNUM **")
- q = self._backend._ffi.new("BIGNUM **")
- g = self._backend._ffi.new("BIGNUM **")
- self._backend._lib.DSA_get0_pqg(self._dsa_cdata, p, q, g)
- self._backend.openssl_assert(p[0] != self._backend._ffi.NULL)
- self._backend.openssl_assert(q[0] != self._backend._ffi.NULL)
- self._backend.openssl_assert(g[0] != self._backend._ffi.NULL)
- p_dup = self._backend._lib.BN_dup(p[0])
- q_dup = self._backend._lib.BN_dup(q[0])
- g_dup = self._backend._lib.BN_dup(g[0])
- res = self._backend._lib.DSA_set0_pqg(dsa_cdata, p_dup, q_dup, g_dup)
- self._backend.openssl_assert(res == 1)
return _DSAParameters(self._backend, dsa_cdata)
def private_bytes(self, encoding, format, encryption_algorithm):
@@ -256,23 +244,10 @@ class _DSAPublicKey(object):
)
def parameters(self):
- dsa_cdata = self._backend._lib.DSA_new()
- self._backend.openssl_assert(dsa_cdata != self._backend._ffi.NULL)
+ dsa_cdata = self._backend._lib.DSAparams_dup(self._dsa_cdata)
dsa_cdata = self._backend._ffi.gc(
dsa_cdata, self._backend._lib.DSA_free
)
- p = self._backend._ffi.new("BIGNUM **")
- q = self._backend._ffi.new("BIGNUM **")
- g = self._backend._ffi.new("BIGNUM **")
- self._backend._lib.DSA_get0_pqg(self._dsa_cdata, p, q, g)
- self._backend.openssl_assert(p[0] != self._backend._ffi.NULL)
- self._backend.openssl_assert(q[0] != self._backend._ffi.NULL)
- self._backend.openssl_assert(g[0] != self._backend._ffi.NULL)
- p_dup = self._backend._lib.BN_dup(p[0])
- q_dup = self._backend._lib.BN_dup(q[0])
- g_dup = self._backend._lib.BN_dup(g[0])
- res = self._backend._lib.DSA_set0_pqg(dsa_cdata, p_dup, q_dup, g_dup)
- self._backend.openssl_assert(res == 1)
return _DSAParameters(self._backend, dsa_cdata)
def public_bytes(self, encoding, format):