@@ -211,33 +211,51 @@ async def create(self):
211211 # Security checks
212212 #######################
213213
214- SecurityCheckMismatch .check (dh_prime == prime .CURRENT_DH_PRIME )
214+ SecurityCheckMismatch .check (dh_prime == prime .CURRENT_DH_PRIME , "dh_prime == prime.CURRENT_DH_PRIME" )
215215 log .debug ("DH parameters check: OK" )
216216
217217 # https://core.telegram.org/mtproto/security_guidelines#g-a-and-g-b-validation
218218 g_b = int .from_bytes (g_b , "big" )
219- SecurityCheckMismatch .check (1 < g < dh_prime - 1 )
220- SecurityCheckMismatch .check (1 < g_a < dh_prime - 1 )
221- SecurityCheckMismatch .check (1 < g_b < dh_prime - 1 )
222- SecurityCheckMismatch .check (2 ** (2048 - 64 ) < g_a < dh_prime - 2 ** (2048 - 64 ))
223- SecurityCheckMismatch .check (2 ** (2048 - 64 ) < g_b < dh_prime - 2 ** (2048 - 64 ))
219+ SecurityCheckMismatch .check (1 < g < dh_prime - 1 , "1 < g < dh_prime - 1" )
220+ SecurityCheckMismatch .check (1 < g_a < dh_prime - 1 , "1 < g_a < dh_prime - 1" )
221+ SecurityCheckMismatch .check (1 < g_b < dh_prime - 1 , "1 < g_b < dh_prime - 1" )
222+ SecurityCheckMismatch .check (
223+ 2 ** (2048 - 64 ) < g_a < dh_prime - 2 ** (2048 - 64 ),
224+ "2 ** (2048 - 64) < g_a < dh_prime - 2 ** (2048 - 64)"
225+ )
226+ SecurityCheckMismatch .check (
227+ 2 ** (2048 - 64 ) < g_b < dh_prime - 2 ** (2048 - 64 ),
228+ "2 ** (2048 - 64) < g_b < dh_prime - 2 ** (2048 - 64)"
229+ )
224230 log .debug ("g_a and g_b validation: OK" )
225231
226232 # https://core.telegram.org/mtproto/security_guidelines#checking-sha1-hash-values
227233 answer = server_dh_inner_data .write () # Call .write() to remove padding
228- SecurityCheckMismatch .check (answer_with_hash [:20 ] == sha1 (answer ).digest ())
234+ SecurityCheckMismatch .check (
235+ answer_with_hash [:20 ] == sha1 (answer ).digest (),
236+ "answer_with_hash[:20] == sha1(answer).digest()"
237+ )
229238 log .debug ("SHA1 hash values check: OK" )
230239
231240 # https://core.telegram.org/mtproto/security_guidelines#checking-nonce-server-nonce-and-new-nonce-fields
232241 # 1st message
233- SecurityCheckMismatch .check (nonce == res_pq .nonce )
242+ SecurityCheckMismatch .check (nonce == res_pq .nonce , "nonce == res_pq.nonce" )
234243 # 2nd message
235244 server_nonce = int .from_bytes (server_nonce , "little" , signed = True )
236- SecurityCheckMismatch .check (nonce == server_dh_params .nonce )
237- SecurityCheckMismatch .check (server_nonce == server_dh_params .server_nonce )
245+ SecurityCheckMismatch .check (nonce == server_dh_params .nonce , "nonce == server_dh_params.nonce" )
246+ SecurityCheckMismatch .check (
247+ server_nonce == server_dh_params .server_nonce ,
248+ "server_nonce == server_dh_params.server_nonce"
249+ )
238250 # 3rd message
239- SecurityCheckMismatch .check (nonce == set_client_dh_params_answer .nonce )
240- SecurityCheckMismatch .check (server_nonce == set_client_dh_params_answer .server_nonce )
251+ SecurityCheckMismatch .check (
252+ nonce == set_client_dh_params_answer .nonce ,
253+ "nonce == set_client_dh_params_answer.nonce"
254+ )
255+ SecurityCheckMismatch .check (
256+ server_nonce == set_client_dh_params_answer .server_nonce ,
257+ "server_nonce == set_client_dh_params_answer.server_nonce"
258+ )
241259 server_nonce = server_nonce .to_bytes (16 , "little" , signed = True )
242260 log .debug ("Nonce fields check: OK" )
243261
@@ -248,6 +266,8 @@ async def create(self):
248266
249267 log .info (f"Done auth key exchange: { set_client_dh_params_answer .__class__ .__name__ } " )
250268 except Exception as e :
269+ log .info (f"Retrying due to { type (e ).__name__ } : { e } " )
270+
251271 if retries_left :
252272 retries_left -= 1
253273 else :
0 commit comments