@@ -102,16 +102,7 @@ fn dh_parameters_from_numbers(
102102 . transpose ( ) ?;
103103 let g = utils:: py_int_to_bn ( py, numbers. getattr ( pyo3:: intern!( py, "g" ) ) ?) ?;
104104
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) ?)
115106}
116107
117108#[ pyo3:: prelude:: pyfunction]
@@ -127,7 +118,16 @@ fn from_private_numbers(
127118 let pub_key = utils:: py_int_to_bn ( py, public_numbers. getattr ( pyo3:: intern!( py, "y" ) ) ?) ?;
128119 let priv_key = utils:: py_int_to_bn ( py, numbers. getattr ( pyo3:: intern!( py, "x" ) ) ?) ?;
129120
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) ?;
131131 Ok ( DHPrivateKey { pkey } )
132132}
133133
0 commit comments