aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Kehrer <paul.l.kehrer@gmail.com>2016-05-31 13:35:40 -0700
committerAlex Gaynor <alex.gaynor@gmail.com>2016-05-31 13:35:40 -0700
commit3f20d15f96215ab67c50dc31c7887d903b415149 (patch)
treea40069c77c7baf1e0ee1283ff4d78cbb3f7a9046
parentc77579b811e4cbd856413f804c2fa92eedd4a666 (diff)
downloadcryptography-3f20d15f96215ab67c50dc31c7887d903b415149.tar.gz
cryptography-3f20d15f96215ab67c50dc31c7887d903b415149.tar.bz2
cryptography-3f20d15f96215ab67c50dc31c7887d903b415149.zip
treat rsa struct as opaque (#2935)
-rw-r--r--src/cryptography/hazmat/backends/openssl/backend.py28
1 files changed, 17 insertions, 11 deletions
diff --git a/src/cryptography/hazmat/backends/openssl/backend.py b/src/cryptography/hazmat/backends/openssl/backend.py
index 308c4e37..d8a681e6 100644
--- a/src/cryptography/hazmat/backends/openssl/backend.py
+++ b/src/cryptography/hazmat/backends/openssl/backend.py
@@ -428,14 +428,20 @@ class Backend(object):
rsa_cdata = self._lib.RSA_new()
self.openssl_assert(rsa_cdata != self._ffi.NULL)
rsa_cdata = self._ffi.gc(rsa_cdata, self._lib.RSA_free)
- rsa_cdata.p = self._int_to_bn(numbers.p)
- rsa_cdata.q = self._int_to_bn(numbers.q)
- rsa_cdata.d = self._int_to_bn(numbers.d)
- rsa_cdata.dmp1 = self._int_to_bn(numbers.dmp1)
- rsa_cdata.dmq1 = self._int_to_bn(numbers.dmq1)
- rsa_cdata.iqmp = self._int_to_bn(numbers.iqmp)
- rsa_cdata.e = self._int_to_bn(numbers.public_numbers.e)
- rsa_cdata.n = self._int_to_bn(numbers.public_numbers.n)
+ p = self._int_to_bn(numbers.p)
+ q = self._int_to_bn(numbers.q)
+ d = self._int_to_bn(numbers.d)
+ dmp1 = self._int_to_bn(numbers.dmp1)
+ dmq1 = self._int_to_bn(numbers.dmq1)
+ iqmp = self._int_to_bn(numbers.iqmp)
+ e = self._int_to_bn(numbers.public_numbers.e)
+ n = self._int_to_bn(numbers.public_numbers.n)
+ res = self._lib.RSA_set0_factors(rsa_cdata, p, q)
+ self.openssl_assert(res == 1)
+ res = self._lib.RSA_set0_key(rsa_cdata, n, e, d)
+ self.openssl_assert(res == 1)
+ res = self._lib.RSA_set0_crt_params(rsa_cdata, dmp1, dmq1, iqmp)
+ self.openssl_assert(res == 1)
res = self._lib.RSA_blinding_on(rsa_cdata, self._ffi.NULL)
self.openssl_assert(res == 1)
evp_pkey = self._rsa_cdata_to_evp_pkey(rsa_cdata)
@@ -447,9 +453,9 @@ class Backend(object):
rsa_cdata = self._lib.RSA_new()
self.openssl_assert(rsa_cdata != self._ffi.NULL)
rsa_cdata = self._ffi.gc(rsa_cdata, self._lib.RSA_free)
- rsa_cdata.e = self._int_to_bn(numbers.e)
- rsa_cdata.n = self._int_to_bn(numbers.n)
- res = self._lib.RSA_blinding_on(rsa_cdata, self._ffi.NULL)
+ e = self._int_to_bn(numbers.e)
+ n = self._int_to_bn(numbers.n)
+ res = self._lib.RSA_set0_key(rsa_cdata, n, e, self._ffi.NULL)
self.openssl_assert(res == 1)
evp_pkey = self._rsa_cdata_to_evp_pkey(rsa_cdata)