
    $Sh,                         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	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j        e          Z G d d          ZdS )    N)sha1)BytesIO)urandom)raw)
Connection)aesrsaprime)SecurityCheckMismatch)TLObjectLongInt   )MsgIdc                   t    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dS )Auth   clientzpyrogram.Clientdc_id	test_modec                 `    || _         || _        |j        | _        |j        | _        d | _        d S N)r   r   ipv6proxy
connection)selfr   r   r   s       [/var/www/html/movieo_spanner_bot/venv/lib/python3.11/site-packages/pyrogram/session/auth.py__init__zAuth.__init__(   s-    
"K	\
    datareturnc                     t          d          t          t                                z   t          t	          |                                                     z   |                                 z   S )N   )bytesr   r   r   lenwrite)r    s    r   packz	Auth.pack0   sV     !HH577mm#djjll##$$% jjll	
r   bc                 T    |                      d           t          j        |           S )N   )seekr   read)r(   s    r   unpackzAuth.unpack9   s!    	r


}Qr   c                    K   |                      |          }| j                            |           d {V  t          | j                                         d {V           }|                     |          S r   )r'   r   sendr   recvr-   )r   r    responses      r   invokezAuth.invoke>   s|      yyo""4(((((((((!5!5!7!777777788{{8$$$r   c                 b  K   | j         }	 t          | j        | j        | j        | j                  | _        	 t                              d| j                   | j        	                                 d{V  t                              t          d          dd          }t                              d|           |                     t          j                            |                     d{V }t                              d	|j                   t                              d
|j                   |j        D ]J}|t(          j        v rt                              d|           |} n+t                              d|           Kt-          d          t                              |j        d          }t                              d|           t1          j                    }t3          j        |          }t7          |||z  f          \  }	}
t                              dt9          t1          j                    |z
  d          |	|
           |j        }t                              t          d          dd          }t          j                            |j        |	                    dd          |
                    dd          |||                                           }tC          |          "                                }t          tG          |          tG          |          z    dz            }||z   |z   }t)          j$        ||          }t                              d           t                              d           |                     t          j        %                    |||	                    dd          |
                    dd          ||                     d{V }|j&        }|                    ddd          }|                    ddd          }tC          ||z             "                                tC          ||z             "                                dd         z   }tC          ||z             "                                dd         tC          ||z             "                                z   |dd         z   }t                              |dd          }tO          j(        |||          }|dd         }tS          j*        tW          |                    }t                              d           t                              |j,        d          }|j-        t1          j                    z
  }t                              dt9          |d                     |j.        }t                              t          d          d          }t_          |||                              dd          }d}t          j        0                    ||||                                           }tC          |          "                                }t          tG          |          tG          |          z    dz            }||z   |z   }tO          j1        |||          }t                              d            |                     t          j        2                    |||!                     d{V }t                              |j3        d          }t_          |||                              dd          } |                    ddd          }ti          j5        |t2          j6        k    d"           t                              d#           t                              |d          }ti          j5        d$|cxk     o|d$z
  k     nc d%           ti          j5        d$|cxk     o|d$z
  k     nc d&           ti          j5        d$|cxk     o|d$z
  k     nc d'           ti          j5        d(d)z  |cxk     o|d(d)z  z
  k     nc d*           ti          j5        d(d)z  |cxk     o|d(d)z  z
  k     nc d+           t                              d,           |                                 }ti          j5        |dd         tC          |          "                                k    d-           t                              d.           ti          j5        ||j7        k    d/           t                              |dd          }ti          j5        ||j7        k    d0           ti          j5        ||j        k    d1           ti          j5        ||j7        k    d2           ti          j5        ||j        k    d3           |                    ddd          }t                              d4           tO          j8        |dd5         |dd5                   }!t                              d6t                              |!d                     t                              d7|j9        j:                   | | j        ;                                 d{V  S # t,          $ r|}"t                              d8ty          |"          j:        |"           |r|d$z  }n|"t{          j>        d$           d{V  Y d}"~"| j        ;                                 d{V  
d}"~"ww xY w# | j        ;                                 d{V  w xY w)9zw
        https://core.telegram.org/mtproto/auth_key
        https://core.telegram.org/mtproto/samples-auth_key
        Tz%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qr7   server_nonce	new_nonce   zDone encrypt data with RSAzSend req_DH_params)r7   r?   r=   r>   public_key_fingerprintencrypted_data   r*   zDone decrypting answerzDelta time: %s   r   )r7   r?   retry_idg_bzSend set_client_DH_params)r7   r?   rC   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)?MAX_RETRIESr   r   r   r   r   r   loginfoconnectint
from_bytesr   debugr2   r   	functions
ReqPqMultir?   server_public_key_fingerprintsr	   server_public_keys	Exceptionr<   timer
   	decomposesortedroundtypesPQInnerDatato_bytesr&   r   digestr%   encryptReqDHParamsencrypted_answerr   ige256_decryptr   r,   r   dh_primeserver_timegpowClientDHInnerDataige256_encryptSetClientDHParamsg_ar   checkCURRENT_DH_PRIMEr7   xor	__class____name__closetypeasynciosleep)#r   retries_leftr7   res_pqirB   r<   startrc   r=   r>   r?   r@   r    shapaddingdata_with_hashrC   server_dh_paramsr_   tmp_aes_key
tmp_aes_ivanswer_with_hashanswerserver_dh_inner_datara   
delta_timer(   rG   rF   set_client_dh_params_answerrh   auth_keyserver_saltes#                                      r   createzAuth.createE   s     
 'K	.(T^TYPTPZ[[DOH.@$*MMMo--///////// wr{{HTJJ		+U333#{{3=+C+C%+C+P+PQQQQQQQQ		/6+>???		>@efff> < <AC222		"91===12.		";Q????#$:;;; ^^FIu55		6;;;	OB''q"'l++1		>dikkTYFY[\@]@]_`bcddd  &2NN72;;NNN	y,,yjjE**jjE**!-' -   %''  4jj''))!SYYS%9":S"@AA!$tg!5!$^=S!T!T		6777 		.///)-M--#%1**Q..**Q../E'5 .  	* 	* 	$ 	$ 	$ 	$ 	$ 	$  $4#D +44R$4OO%..r8D.II	 \12299;;<)344;;==crcBC  	12299;;BCC@9y01188::;=Frr]K 
  #~~lHT~RR#&#56FU_#`#` )"##.'/}WV__'E'E$		2333>>*>*GOO1=	K
		*E*a,@,@AAA )*NN73<<77!Q))223>>y22!-%	 3  
 %''  4jj''))!SYYS%9":R"?@@!$tg!5!$!3NKQ[!\!\		566648KKM33#%1'5 4  5 5 / / / / / /+ nn%9%=uEEsAx0099#uEE+44R$4OO &+H8N,NPtuuu		3444 nnS%00%+A,@,@,@,@HqL,@,@,@,@BXYYY%+A,B,B,B,Bhl,B,B,B,BD\]]]%+A,B,B,B,Bhl,B,B,B,BD\]]]%+)$sHHHHXi8H-HHHHHJ   &+)$sHHHHXi8H-HHHHHJ   		6777 .3355%+$SbS)T&\\-@-@-B-BBD   		6777 &+EV\,ACZ[[["~~lHT~RR%+E5E5K,KMnooo%+ $4$AAC  
 &+8>>@   &+ $?$LLN    ,44R$4OO		2333 "gim\"1"5EFF		+S^^K-R-RSSS57R7\7efff  o++----------  	 	 	14773CQGGG  A%LLGmA&&&&&&&&& o++----------	 o++----------s1   h,j #l 
l
Al l l

l !l.N)rm   
__module____qualname__rI   rM   boolr   staticmethodr   r$   r'   r   r-   r2   r    r   r   r   r   %   s        K0       
8 
 
 
 
 \
  '       \ % % % % %T. T. T. T. T.r   r   )rp   loggingrU   hashlibr   ior   osr   pyrogramr   pyrogram.connectionr   pyrogram.cryptor   r	   r
   pyrogram.errorsr   pyrogram.raw.corer   r   r   	internalsr   	getLoggerrm   rJ   r   r   r   r   <module>r      s3  &                             * * * * * * + + + + + + + + + + 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1      g!!t. t. t. t. t. t. t. t. t. t.r   