@@ -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