o
    -˜Žj   ã                   @   s¢  d dl Z e  e¡ZzQd dlZe d¡ dedededefdd„Zdedededefd	d
„Zddedede	de	def
dd„Z
ddedede	de	def
dd„Zdededefdd„ZW dS  eyÐ   d dlZe d¡ dedededefdd„Zdedededefdd
„Zddedede	de	def
dd„Z
ddedede	de	def
dd„Zdededefdd„Zdededededef
dd„Zdedede	de	def
dd„ZY dS w ) é    NzUsing TgCryptoÚdataÚkeyÚivÚreturnc                 C   ó   t  | ||¡S ©N)ÚtgcryptoÚige256_encrypt©r   r   r   © r   úP/var/www/kodo/Anonymous/send/lib/python3.10/site-packages/pyrogram/crypto/aes.pyr	      ó   r	   c                 C   r   r   )r   Úige256_decryptr
   r   r   r   r   "   r   r   Ústatec                 C   ó   t  | |||p
tdƒ¡S ©Né   )r   Úctr256_encryptÚ	bytearray©r   r   r   r   r   r   r   r   &   ó   r   c                 C   r   r   )r   Úctr256_decryptr   r   r   r   r   r   *   r   r   ÚaÚbc                 C   ó&   t  t  | d¡t  |d¡A t| ƒd¡S ©NÚbig©ÚintÚto_bytesÚ
from_bytesÚlen©r   r   r   r   r   Úxor.   ó
   ýr#   zŠTgCrypto is missing! Pyrogram will work the same, but at a much slower speed. More info: https://pyrofork.wulan17.dev/main/topics/speedupsc                 C   ó   t | ||dƒS )NT©Úiger
   r   r   r   r	   >   r   c                 C   r%   )NFr&   r
   r   r   r   r   B   r   c                 C   ó   t | |||p	tdƒƒS r   ©Úctrr   r   r   r   r   r   F   ó   c                 C   r(   r   r)   r   r   r   r   r   J   r+   c                 C   r   r   r   r"   r   r   r   r#   N   r$   Úencryptc           	         s¸   t  |¡}|d d… }|dd … }‡ fdd„tdtˆ ƒdƒD ƒ‰ |r=tˆ ƒD ]\}}t| t||ƒ¡|ƒ }ˆ |< |}q&ntˆ ƒD ]\}}t| t||ƒ¡|ƒ }ˆ |< |}qAd ˆ ¡S )Né   c                    s   g | ]
}ˆ ||d  … ‘qS )r-   r   )Ú.0Úi©r   r   r   Ú
<listcomp>\   s    zige.<locals>.<listcomp>r   ó    )	ÚpyaesÚAESÚranger!   Ú	enumerater#   r,   ÚdecryptÚjoin)	r   r   r   r,   ÚcipherÚiv_1Úiv_2r/   Úchunkr   r0   r   r'   V   s   
þ
r'   c           
      C   sì   t  |¡}t| ƒ}| |¡}tdt| ƒdƒD ]]}tdtt| ƒ| dƒƒD ]N}|||   ||d  N  < |d  d7  < |d dkrFd|d< |d dkrrtdddƒD ]}	z||	  d7  < W  n tyl   d||	< Y qRw | |¡}q$q|S )Nr   r-   r   é   éÿÿÿÿ)r3   r4   r   r,   r5   r!   ÚminÚ
ValueError)
r   r   r   r   r9   Úoutr<   r/   ÚjÚkr   r   r   r*   j   s*   

ÿ
€ðr*   r   )ÚloggingÚ	getLoggerÚ__name__Úlogr   ÚinfoÚbytesr	   r   r   r   r   r#   ÚImportErrorr3   ÚwarningÚboolr'   r*   r   r   r   r   Ú<module>   s.   

  ÿ  $Ê