
    i                         S SK Jr  S SKJr  S SKJr  S SKJr  S SKJ	r	J
r
  SSKJr  S\S	\S
\S\4S jrS\	S\S\S\S\S\4S jrS\S\S\S\S\	4
S jrg)    )sha256)BytesIO)urandom)SecurityCheckMismatch)MessageLong   )aesauth_keymsg_keyoutgoingreturnc                     U(       a  SOSn[        XX3S-    -   5      R                  5       n[        XS-   US-    U-   5      R                  5       nUS S USS -   USS -   nUS S USS -   USS -   nXg4$ )Nr      $   (   L          )r   digest)r   r   r   xsha256_asha256_baes_keyaes_ivs           D/app/mltbenv/lib/python3.13/site-packages/pyrogram/crypto/mtproto.pykdfr      s    1AgF 334;;=Hh2va"f-78??AHrlXa^+hr"o=Gbq\HQrN*Xb_<F?    messagesalt
session_idauth_key_idc                 "   [        U5      U-   U R                  5       -   n[        [        U5      S-   * S-  S-   5      n[	        USS U-   U-   5      R                  5       nUSS n[        X8S5      u  pXH-   [        R                  " XV-   X5      -   $ )N      X   x   r   r   T)	r   writer   lenr   r   r   r
   ige256_encrypt)r   r    r!   r   r"   datapaddingmsg_key_larger   r   r   s              r   packr.   )   s    :
"W]]_4DD	B'",r12G 8B047'ABIIKMAb!G(T2OG 3#5#5dng#VVVr   bc                    [         R                  " U R                  S5      U:H  S5        U R                  S5      n[        X$S5      u  pV[	        [
        R                  " U R                  5       XV5      5      nUR                  S5        [         R                  " UR                  S5      U:H  S5         [        R                  " U5      n[         R                  " U[!        USS UR#                  5       -   5      R%                  5       SS :H  S5        UR'                  S5        UR                  5       nXR(                  S  n[         R                  " S[        U5      s=:*  =(       a    S:*  Os  S5        [         R                  " [        U5      S-  S:H  S5        [         R                  " UR*                  S-  S:g  S5        U$ ! [         a  n	U	R                  S   S:X  a  [        S5      eUR                  5       R                  5       n
[        S[        U
5      S5       Vs/ s H	  oXS-    PM     Os  snf n
nU
 V
Vs/ s H4  n
[        S[        U
5      S5       Vs/ s H	  oXS-    PM     Os  snf snPM6     Os  snn
f snn
n
S	R                  S
 U
 5       5      n
[        S[        U	R                  S   5       S	U
 35      eS n	A	ff = f)Nr   zb.read(8) == auth_key_idr%   Fzdata.read(8) == session_idr   z4Received empty data. Check your internet connection.@   
c              3   R   #    U  H  nS R                  S U 5       5      v   M     g7f) c              3   $   #    U  H  ov   M     g 7f)N ).0r   s     r   	<genexpr>#unpack.<locals>.<genexpr>.<genexpr>O   s     !2T!Ts   N)join)r7   lefts     r   r8   unpack.<locals>.<genexpr>O   s"     Dtt!2T!222ts   %'z(The server sent an unknown constructor: `      r   zHmsg_key == sha256(auth_key[96:96 + 32] + data.getvalue()).digest()[8:24]r   r$   i   z12 <= len(padding) <= 1024   zlen(payload) % 4 == 0   zmessage.msg_id % 2 != 0)r   checkreadr   r   r
   ige256_decryptr   KeyErrorargsConnectionErrorhexranger)   r:   
ValueErrorr   getvaluer   seeklengthmsg_id)r/   r!   r   r"   r   r   r   r+   r   er;   ipayloadr,   s                 r   unpackrQ   5   sJ    q	[ 8:TUffRjG(U3OG3%%affh@ADIIaL 		!
 :<XY^,,t$ 6(2g.@AHHJ1RPPR 	IIbMiikGnno&Gc'l : :d :<XYGq 0A 57NO  2a 79RSN;  
^66!9>!$XZZyy{ (-aTB(?@(?1Q2v(?@@LPQDDaTA(>?(>1aA(>?DQyyDtDDCCq	NCSSUVZU[\]]
^s>   2G 
KAKH0/K<I8I+*I87A
KKN)hashlibr   ior   osr   pyrogram.errorsr   pyrogram.raw.corer   r    r
   bytesbooltupler   intr.   rQ   r6   r   r   <module>r\      s   &    1 + 
% 
% 
4 
E 
	W' 	W 	W% 	W5 	WW\ 	Waf 	W/// / 	/
 /r   