diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/cryptography/hazmat/backends/openssl/backend.py | 28 |
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) |