Ë
    S"“jB  ã                   ó   — d Z ddlZddlZddlZddlmZ  ej                  e«      Z	 ddl	Z	ej                  d«        G d„ d	«      Zy# e$ r@ dZ	ej                  rej                  rej                  d«       nej                  d«       Y ŒOw xY w)
z¶
AES IGE implementation in Python.

If available, cryptg will be used instead, otherwise
if available, libssl will be used instead, otherwise
the Python implementation will be used.
é    Né   )Úlibsslz/cryptg detected, it will be used for encryptionz/libssl detected, it will be used for encryptionz\cryptg module not installed and libssl not found, falling back to (slower) Python encryptionc                   ó0   — e Zd ZdZed„ «       Zed„ «       Zy)ÚAESzf
    Class that servers as an interface to encrypt and decrypt
    text through the AES IGE mode.
    c                 óF  — t         rt        j                  | ||«      S t        j                  rt        j                  | ||«      S |dt        |«      dz   }|t        |«      dz  d }t	        j
                  |«      }g }t        | «      dz  }dgdz  }t        |«      D ]x  }	t        d«      D ]  }
| |	dz  |
z      ||
   z  ||
<   Œ |j                  |«      }t        d«      D ]  }
||
xx   ||
   z  cc<   Œ | |	dz  |	dz  dz    }|}|j                  |«       Œz t        |«      S )z
        Decrypts the given text in 16-bytes blocks by using the
        given key and 32-bytes initialization vector.
        Né   é   r   )
ÚcryptgÚdecrypt_iger   ÚlenÚpyaesr   ÚrangeÚdecryptÚextendÚbytes)Úcipher_textÚkeyÚivÚiv1Úiv2ÚaesÚ
plain_textÚblocks_countÚcipher_text_blockÚblock_indexÚiÚplain_text_blocks               úT/var/www/api.ozpay.ru/ozpay/venv/lib/python3.12/site-packages/telethon/crypto/aes.pyr   zAES.decrypt_ige"   sR  € õ Ü×%Ñ% k°3¸Ó;Ð;Ü×ÒÜ×%Ñ% k°3¸Ó;Ð;à�”#�b“'˜Q‘,ÐˆØ”�R“˜A‘�Ðˆä�i‰i˜‹nˆàˆ
Ü˜;Ó'¨2Ñ-ˆà˜C "™HÐÜ  Ó.ò 	0ˆKÜ˜2“Yò ?�à ¨bÑ 0°1Ñ 4Ñ5¸¸A¹Ñ>ð " !Ò$ð?ð  #Ÿ{™{Ð+<Ó=Ðä˜2“Yò .�Ø  Ó# s¨1¡vÑ-Ô#ð.ð ˜k¨BÑ.¨{¸RÑ/?À"Ñ/DÐEˆCØ"ˆCà×ÑÐ.Õ/ð	0ô �ZÓ Ð ó    c                 ó¶  — t        | «      dz  }|r| t        j                  d|z
  «      z  } t        rt        j                  | ||«      S t
        j                  rt        j                  | ||«      S |dt        |«      dz   }|t        |«      dz  d }t        j                  |«      }g }t        | «      dz  }t        |«      D ]‹  }	t        | |	dz  |	dz  dz    «      }
t        d«      D ]  }|
|xx   ||   z  cc<   Œ |j                  |
«      }t        d«      D ]  }||xx   ||   z  cc<   Œ |}| |	dz  |	dz  dz    }|j                  |«       Œ� t        |«      S )z
        Encrypts the given text in 16-bytes blocks by using the
        given key and 32-bytes initialization vector.
        r	   Nr   )r   ÚosÚurandomr
   Úencrypt_iger   r   r   r   ÚlistÚencryptr   r   )r   r   r   Úpaddingr   r   r   r   r   r   r   r   r   s                r   r#   zAES.encrypt_igeG   s‚  € ô �j“/ BÑ&ˆÙØœ"Ÿ*™* R¨'¡\Ó2Ñ2ˆJåÜ×%Ñ% j°#°rÓ:Ð:Ü×ÒÜ×%Ñ% j°#°rÓ:Ð:à�”#�b“'˜Q‘,ÐˆØ”�R“˜A‘�Ðˆä�i‰i˜‹nˆàˆÜ˜:“¨"Ñ,ˆä  Ó.ò 	2ˆKÜ#Ø˜;¨Ñ+¨K¸"Ñ,<¸rÑ,AÐBó Ðô ˜2“Yò .�Ø  Ó# s¨1¡vÑ-Ô#ð.ð !$§¡Ð,<Ó =Ðä˜2“Yò /�Ø! !Ó$¨¨A©Ñ.Ô$ð/ð $ˆCØ˜[¨2Ñ-¨k¸BÑ.>ÀÑ.CÐDˆCà×ÑÐ0Õ1ð	2ô" �[Ó!Ð!r   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ústaticmethodr   r#   © r   r   r   r      s0   „ ñð ñ"!ó ð"!ðH ñ'"ó ñ'"r   r   )r*   r!   r   ÚloggingÚ r   Ú	getLoggerr'   Ú__log__r
   ÚinfoÚImportErrorr#   r   r   r,   r   r   ú<module>r3      s˜   ðñó 
Û Û Ý ð ˆ'×
Ñ
˜HÓ
%€ð	CÛØ‡L�LÐBÔC÷R"ò R"øð ò CØ€FØ×Ò˜f×0Ò0Ø�‰ÐFÕGà�‰ð Bô 	CùðCús   ¨A ÁABÂB