Ë
    :É„jè.  ã                   óä   — d dl Z d dlZd dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlZd dlmZ d dlmZ d dlmZmZmZ d d	lmZ d d
lmZmZmZ ddlmZ  ej6                  e«      Z G d„ d«      Zy)é    N)Úsha1)ÚBytesIO)Úurandom)ÚOptional)Úraw)Ú
Connection)ÚaesÚrsaÚprime)ÚSecurityCheckMismatch)ÚTLObjectÚLongÚInté   )ÚMsgIdc                   óf   — e Zd ZdZdddedefd„Zedede	fd	„«       Z
ed
efd„«       Zdefd„Zd„ Zy)ÚAuthé   Úclientzpyrogram.ClientÚdc_idÚ	test_modec                 óØ   — || _         || _        |j                  | _        |j                  | _        |j                  | _        |j
                  | _        |j                  | _        d | _        y ©N)r   r   Úipv6Úalt_portÚproxyÚconnection_factoryÚprotocol_factoryÚ
connection)Úselfr   r   r   s       úL/var/www/html/GAP/venv/lib/python3.12/site-packages/pyrogram/session/auth.pyÚ__init__zAuth.__init__*   sV   € ð ˆŒ
Ø"ˆŒØ—K‘KˆŒ	ØŸ™ˆŒØ—\‘\ˆŒ
Ø"(×";Ñ";ˆÔØ &× 7Ñ 7ˆÔà04ˆ�ó    ÚdataÚreturnc                 ó¨   — t        d«      t        t        «       «      z   t        t	        | j                  «       «      «      z   | j                  «       z   S )Né   )Úbytesr   r   r   ÚlenÚwrite)r$   s    r!   Úpackz	Auth.pack:   sF   € ô �!‹HÜ”5“7‹mñä”#�d—j‘j“lÓ#Ó$ñ%ð �j‰j‹lñð	
r#   Úbc                 óN   — | j                  d«       t        j                  | «      S )Né   )Úseekr   Úread)r,   s    r!   ÚunpackzAuth.unpackC   s   € à	�‰ˆrŒ
Ü�}‰}˜QÓÐr#   c              ƒ   óò   K  — | j                  |«      }| j                  j                  |«      ƒ d {  –—†  t        | j                  j	                  «       ƒ d {  –—† «      }| j                  |«      S 7 Œ@7 Œ­wr   )r+   r   Úsendr   Úrecvr1   )r    r$   Úresponses      r!   ÚinvokezAuth.invokeH   s]   è ø€ Ø�y‰y˜‹ˆØ�o‰o×"Ñ" 4Ó(×(Ð(Ü §¡×!5Ñ!5Ó!7×7Ó8ˆà�{‰{˜8Ó$Ð$ð 	)øØ7ús!   ‚0A7²A3³&A7ÁA5ÁA7Á5A7c              ƒ   ó$  K  — | j                   }	 | j                  | j                  | j                  | j                  | j
                  | j                  d| j                  ¬«      | _        	 t        j                  d| j                  «       | j                  j                  «       ƒ d{  –—†  t        j                  t        d«      dd¬«      }t        j                  d	|«       | j!                  t"        j$                  j'                  |¬
«      «      ƒ d{  –—† }t        j                  d|j(                  «       t        j                  d|j*                  «       |j*                  D ]D  }|t,        j.                  v rt        j                  d|«       |} n#t        j                  d|«       ŒF t1        d«      ‚t        j                  |j2                  d«      }t        j                  d|«       t5        j4                  «       }t7        j8                  |«      }t;        |||z  f«      \  }	}
t        j                  dt=        t5        j4                  «       |z
  d«      |	|
«       |j(                  }t        j                  t        d«      dd¬«      }t"        j>                  jA                  |j2                  |	jC                  dd«      |
jC                  dd«      |||¬«      jE                  «       }tG        |«      jI                  «       }t        tK        |«      tK        |«      z    dz  «      }||z   |z   }t-        jL                  ||«      }t        j                  d«       t        j                  d«       | j!                  t"        j$                  jO                  |||	jC                  dd«      |
jC                  dd«      ||¬«      «      ƒ d{  –—† }|jP                  }|jC                  ddd¬«      }|jC                  ddd¬«      }tG        ||z   «      jI                  «       tG        ||z   «      jI                  «       dd z   }tG        ||z   «      jI                  «       dd tG        ||z   «      jI                  «       z   |dd z   }t        j                  |dd¬«      }tS        jT                  |||«      }|dd }tW        jX                  t[        |«      «      }t        j                  d«       t        j                  |j\                  d«      }|j^                  t5        j4                  «       z
  }t        j                  dt=        |d«      «       |j`                  }t        j                  t        d«      d«      }tc        |||«      jC                  dd«      }d }t"        j>                  je                  ||||¬!«      jE                  «       }tG        |«      jI                  «       }t        tK        |«      tK        |«      z    dz  «      }||z   |z   }tS        jf                  |||«      }t        j                  d"«       | j!                  t"        j$                  ji                  |||¬#«      «      ƒ d{  –—† }t        j                  |jj                  d«      }tc        |||«      jC                  dd«      } |jC                  ddd¬«      }tm        jn                  |t6        jp                  k(  d$«       t        j                  d%«       t        j                  |d«      }tm        jn                  d&|cxk  xr |d&z
  k  nc d'«       tm        jn                  d&|cxk  xr |d&z
  k  nc d(«       tm        jn                  d&|cxk  xr |d&z
  k  nc d)«       tm        jn                  d*d+z  |cxk  xr |d*d+z  z
  k  nc d,«       tm        jn                  d*d+z  |cxk  xr |d*d+z  z
  k  nc d-«       t        j                  d.«       |jE                  «       }tm        jn                  |dd tG        |«      jI                  «       k(  d/«       t        j                  d0«       tm        jn                  ||jr                  k(  d1«       t        j                  |dd¬«      }tm        jn                  ||jr                  k(  d2«       tm        jn                  ||j(                  k(  d3«       tm        jn                  ||jr                  k(  d4«       tm        jn                  ||j(                  k(  d5«       |jC                  ddd¬«      }t        j                  d6«       tS        jt                  |dd7 |dd7 «      }!t        j                  d8t        j                  |!d«      «       t        j                  d9|jv                  jx                  «       | | j                  j{                  «       ƒ d{  –—†  S 7 �	Œ'7 �Œ¼7 �Œ7 �Œq7 Œ# t0        $ r€}"t        j                  d:t}        |"«      jx                  |"«       |r|d&z  }n|"‚t        j€                  d&«      ƒ d{  –—†7   Y d}"~"| j                  j{                  «       ƒ d{  –—†7   �
ŒQd}"~"ww xY w# | j                  j{                  «       ƒ d{  –—†7   w xY w­w);zw
        https://core.telegram.org/mtproto/auth_key
        https://core.telegram.org/mtproto/samples-auth_key
        TF)r   r   r   r   r   Úmediar   z%Start creating a new auth key on DC%sNé   Úlittle)ÚsignedzSend req_pq: %s)ÚnoncezGot ResPq: %sz"Server public key fingerprints: %szUsing fingerprint: %szFingerprint unknown: %szPublic key not foundÚbigzStart PQ factorization: %sz"Done PQ factorization (%ss): %s %sé   é    é   )ÚpqÚpÚqr<   Úserver_nonceÚ	new_nonceéÿ   zDone encrypt data with RSAzSend req_DH_params)r<   rD   rB   rC   Úpublic_key_fingerprintÚencrypted_dataé   r.   zDone decrypting answerzDelta time: %sé   r   )r<   rD   Úretry_idÚg_bzSend set_client_DH_params)r<   rD   rH   z"dh_prime == prime.CURRENT_DH_PRIMEzDH parameters check: OKr   z1 < g < dh_prime - 1z1 < g_a < dh_prime - 1z1 < g_b < dh_prime - 1é   iÀ  z42 ** (2048 - 64) < g_a < dh_prime - 2 ** (2048 - 64)z42 ** (2048 - 64) < g_b < dh_prime - 2 ** (2048 - 64)zg_a and g_b validation: OKz.answer_with_hash[:20] == sha1(answer).digest()zSHA1 hash values check: OKznonce == res_pq.nonceznonce == server_dh_params.noncez-server_nonce == server_dh_params.server_noncez*nonce == set_client_dh_params_answer.noncez8server_nonce == set_client_dh_params_answer.server_noncezNonce fields check: OKr'   zServer salt: %szDone auth key exchange: %szRetrying due to %s: %s)AÚMAX_RETRIESr   r   r   r   r   r   r   r   ÚlogÚinfoÚconnectÚintÚ
from_bytesr   Údebugr6   r   Ú	functionsÚ
ReqPqMultirD   Úserver_public_key_fingerprintsr
   Úserver_public_keysÚ	ExceptionrA   Útimer   Ú	decomposeÚsortedÚroundÚtypesÚPQInnerDataÚto_bytesr*   r   Údigestr)   ÚencryptÚReqDHParamsÚencrypted_answerr	   Úige256_decryptr   r0   r   Údh_primeÚserver_timeÚgÚpowÚClientDHInnerDataÚige256_encryptÚSetClientDHParamsÚg_ar   ÚcheckÚCURRENT_DH_PRIMEr<   ÚxorÚ	__class__Ú__name__ÚcloseÚtypeÚasyncioÚsleep)#r    Úretries_leftr<   Úres_pqÚirG   rA   Ústartrh   rB   rC   rD   rE   r$   ÚshaÚpaddingÚdata_with_hashrH   Úserver_dh_paramsrd   Útmp_aes_keyÚ
tmp_aes_ivÚanswer_with_hashÚanswerÚserver_dh_inner_datarf   Ú
delta_timer,   rL   rK   Úset_client_dh_params_answerrm   Úauth_keyÚserver_saltÚes#                                      r!   ÚcreatezAuth.createO   s	  è ø€ ð
 ×'Ñ'ˆð Ø"×5Ñ5Ø—j‘jØŸ.™.Ø—Y‘YØŸ™Ø—j‘jØØ!%×!6Ñ!6ð 6ó ˆDŒOðH.Ü—‘Ð@À$Ç*Á*ÔMà—o‘o×-Ñ-Ó/×/Ð/ô Ÿ™¤w¨r£{°HÀT˜ÓJ�Ü—	‘	Ð+¨UÔ3Ø#Ÿ{™{¬3¯=©=×+CÑ+CÈ%Ð+CÓ+PÓQ×Q�Ü—	‘	˜/¨6×+>Ñ+>Ô?Ü—	‘	Ð>À×@eÑ@eÔfà×>Ñ>ò <�AØœC×2Ñ2Ñ2ÜŸ	™	Ð"9¸1Ô=Ø12Ð.ÙäŸ	™	Ð";¸QÕ?ð<ô $Ð$:Ó;Ð;ô —^‘^ F§I¡I¨uÓ5�Ü—	‘	Ð6¸Ô;ÜŸ	™	›�Ü—O‘O BÓ'�Ü˜q "¨¡'˜lÓ+‘��1Ü—	‘	Ð>ÄÄdÇiÁiÃkÐTYÑFYÐ[\Ó@]Ð_`ÐbcÔdð  &×2Ñ2�ÜŸN™N¬7°2«;¸È˜NÓN�	ä—y‘y×,Ñ,Ø—y‘yØ—j‘j  EÓ*Ø—j‘j  EÓ*ØØ!-Ø'ð -ó ÷ ‘%“'ð ô ˜4“j×'Ñ'Ó)�Ü!¤S¨£Y´°S³Ñ%9Ð":¸SÑ"@ÓA�Ø!$ t¡¨gÑ!5�Ü!$§¡¨^Ð=SÓ!T�ä—	‘	Ð6Ô7ô —	‘	Ð.Ô/Ø)-¯©Ü—M‘M×-Ñ-Ø#Ø%1ØŸ*™* Q¨Ó.ØŸ*™* Q¨Ó.Ø/EØ'5ð .ó ó	*÷ 	$Ð ð $4×#DÑ#DÐ à+×4Ñ4°R¸È$Ð4ÓO�Ø%×.Ñ.¨r°8ÀDÐ.ÓI�	ô ˜ \Ñ1Ó2×9Ñ9Ó;Ü˜<¨)Ñ3Ó4×;Ñ;Ó=¸c¸rÐBñCð ô ˜¨	Ñ1Ó2×9Ñ9Ó;¸B¸CÐ@Ü˜9 yÑ0Ó1×8Ñ8Ó:ñ;Ø=FÀrÈ¸]ñKð ô
  #Ÿ~™~¨l¸HÈT˜~ÓR�ä#&×#5Ñ#5Ð6FÈÐU_Ó#`Ð Ø)¨"¨#Ð.�ä'/§}¡}´W¸V³_Ó'EÐ$ä—	‘	Ð2Ô3äŸ>™>Ð*>×*GÑ*GÈÓO�Ø1×=Ñ=ÄÇ	Á	ÃÑK�
ä—	‘	Ð*¬E°*¸aÓ,@ÔAð )×*Ñ*�Ü—N‘N¤7¨3£<°Ó7�Ü˜!˜Q Ó)×2Ñ2°3¸Ó>�à�ä—y‘y×2Ñ2ØØ!-Ø%Øð	 3ó ÷
 ‘%“'ð ô ˜4“j×'Ñ'Ó)�Ü!¤S¨£Y´°S³Ñ%9Ð":¸RÑ"?Ó@�Ø!$ t¡¨gÑ!5�Ü!$×!3Ñ!3°NÀKÐQ[Ó!\�ä—	‘	Ð5Ô6Ø48·K±KÜ—M‘M×3Ñ3Ø#Ø%1Ø'5ð 4ó ó5÷ /Ð+ô —n‘nÐ%9×%=Ñ%=¸uÓE�Ü˜s A xÓ0×9Ñ9¸#¸uÓE�Ø+×4Ñ4°R¸È$Ð4ÓO�ô &×+Ñ+¨H¼×8NÑ8NÑ,NÐPtÔuÜ—	‘	Ð3Ô4ô —n‘n S¨%Ó0�Ü%×+Ñ+¨A°Ö,@°H¸q±LÔ,@ÐBXÔYÜ%×+Ñ+¨A°Ö,B°hÀ±lÔ,BÐD\Ô]Ü%×+Ñ+¨A°Ö,B°hÀ±lÔ,BÐD\Ô]Ü%×+Ñ+Ø˜)Ñ$ sÖH¨X¸¸iÑ8HÑ-HÔHØJôô &×+Ñ+Ø˜)Ñ$ sÖH¨X¸¸iÑ8HÑ-HÔHØJôô —	‘	Ð6Ô7ð .×3Ñ3Ó5�Ü%×+Ñ+Ø$ S bÐ)¬T°&«\×-@Ñ-@Ó-BÑBØDôô —	‘	Ð6Ô7ô &×+Ñ+¨E°V·\±\Ñ,AÐCZÔ[ä"Ÿ~™~¨l¸HÈT˜~ÓR�Ü%×+Ñ+¨EÐ5E×5KÑ5KÑ,KÐMnÔoÜ%×+Ñ+Ø Ð$4×$AÑ$AÑAØCôô
 &×+Ñ+ØÐ8×>Ñ>Ñ>Ø@ôô &×+Ñ+Ø Ð$?×$LÑ$LÑLØNôð  ,×4Ñ4°R¸È$Ð4ÓO�Ü—	‘	Ð2Ô3ô "Ÿg™g i°° m°\À"À1Ð5EÓF�ä—	‘	Ð+¬S¯^©^¸KÈÓ-RÔSä—‘Ð5Ð7R×7\Ñ7\×7eÑ7eÔfð  à—o‘o×+Ñ+Ó-×-Ñ-ðK 0ùð
 RùðX	$ùðx/ùðp .ùô ò 	Ü—‘Ð1´4¸³7×3CÑ3CÀQÔGáØ  AÑ%‘Là�Gä—m‘m AÓ&×&Ñ&Ûð —o‘o×+Ñ+Ó-×-Ó-ûð	ûð —o‘o×+Ñ+Ó-×-Ò-üsË   ‚A'jÁ*=g Â'gÂ(A-g ÄgÄJ1g ÏgÏJg Ù&gÙ'Mg æ*i( æ+jçgç	jçg çg çg çg çjç	i%ç%Ai è1h4è2i è7i( è;jéiéjé i%é%i( é(jêj	êjêjN)rr   Ú
__module__Ú__qualname__rN   rR   Úboolr"   Ústaticmethodr   r(   r+   r   r1   r6   r‰   © r#   r!   r   r   '   sw   „ Ø€Kð5à!ð5ð ð5ð ó	5ð  ð
�8ð 
 ò 
ó ð
ð ð �'ò  ó ð ð% ó %ó\.r#   r   )ru   ÚloggingrZ   Úhashlibr   Úior   Úosr   Útypingr   Úpyrogramr   Úpyrogram.connectionr   Úpyrogram.cryptor	   r
   r   Úpyrogram.errorsr   Úpyrogram.raw.corer   r   r   Ú	internalsr   Ú	getLoggerrr   rO   r   rŽ   r#   r!   ú<module>r›      sU   ðó( Û Û Ý Ý Ý Ý ã Ý Ý *ß +Ñ +Ý 1ß 1Ñ 1Ý à€g×Ñ˜Ó!€÷D.ò D.r#   