@@ -102,16 +102,7 @@ fn dh_parameters_from_numbers(
102
102
. transpose ( ) ?;
103
103
let g = utils:: py_int_to_bn ( py, numbers. getattr ( pyo3:: intern!( py, "g" ) ) ?) ?;
104
104
105
- let dh = openssl:: dh:: Dh :: from_pqg ( p, q, g) ?;
106
- if !dh. check_key ( ) ? {
107
- return Err ( CryptographyError :: from (
108
- pyo3:: exceptions:: PyValueError :: new_err (
109
- "DH private numbers did not pass safety checks." ,
110
- ) ,
111
- ) ) ;
112
- }
113
-
114
- Ok ( dh)
105
+ Ok ( openssl:: dh:: Dh :: from_pqg ( p, q, g) ?)
115
106
}
116
107
117
108
#[ pyo3:: prelude:: pyfunction]
@@ -127,7 +118,16 @@ fn from_private_numbers(
127
118
let pub_key = utils:: py_int_to_bn ( py, public_numbers. getattr ( pyo3:: intern!( py, "y" ) ) ?) ?;
128
119
let priv_key = utils:: py_int_to_bn ( py, numbers. getattr ( pyo3:: intern!( py, "x" ) ) ?) ?;
129
120
130
- let pkey = openssl:: pkey:: PKey :: from_dh ( dh. set_key ( pub_key, priv_key) ?) ?;
121
+ let dh = dh. set_key ( pub_key, priv_key) ?;
122
+ if !dh. check_key ( ) ? {
123
+ return Err ( CryptographyError :: from (
124
+ pyo3:: exceptions:: PyValueError :: new_err (
125
+ "DH private numbers did not pass safety checks." ,
126
+ ) ,
127
+ ) ) ;
128
+ }
129
+
130
+ let pkey = openssl:: pkey:: PKey :: from_dh ( dh) ?;
131
131
Ok ( DHPrivateKey { pkey } )
132
132
}
133
133
0 commit comments