
    h                         d dl Z d dlZd dlZd dlZ G d dej                  Z G d dej                  Zedk    r ej                     dS dS )    Nc                   N    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd ZdS )TestIGE256Inputz]'\w+' does not (support|have) the buffer interface|a bytes-like object is required, not '\w+'c                     |                      t          d          5  t          j        t	          j        d          t	          j        d                     d d d            d S # 1 swxY w Y   d S Nz0function takes exactly \d arguments \(\d given\)       )assertRaisesRegex	TypeErrortgcryptoige256_encryptosurandomselfs    R/var/www/html/auto_sub_bot/venv/lib/python3.11/site-packages/tests/ige/test_ige.py&test_ige256_encrypt_invalid_args_countz6TestIGE256Input.test_ige256_encrypt_invalid_args_count       ##I/bcc 	D 	D#BJrNNBJrNNCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D   :A##A'*A'c                     |                      t          | j                  5  t          j        ddd           d d d            d S # 1 swxY w Y   d S N         )r	   r
   TYPE_ERROR_PATTERNr   r   r   s    r   %test_ige256_encrypt_invalid_args_typez5TestIGE256Input.test_ige256_encrypt_invalid_args_type!       ##It/FGG 	- 	-#Aq!,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-   AA	A	c                     |                      t          d          5  t          j        dt	          j        d          t	          j        d                     d d d            d S # 1 swxY w Y   d S NzData must not be empty    r   r	   
ValueErrorr   r   r   r   r   s    r   test_ige256_encrypt_empty_dataz.TestIGE256Input.test_ige256_encrypt_empty_data%       ##J0IJJ 	I 	I#CBBHHH	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I   ;A$$A(+A(c                    |                      t          d          5  t          j        t	          j        d          t	          j        d          t	          j        d                     d d d            d S # 1 swxY w Y   d S Nz!Key size must be exactly 32 bytesr      r   r!   r   s    r   $test_ige256_encrypt_invalid_key_sizez4TestIGE256Input.test_ige256_encrypt_invalid_key_size)       ##J0TUU 	T 	T#BJrNNBJrNNBJrNNSSS	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T   AA66A:=A:c                    |                      t          d          5  t          j        t	          j        d          t	          j        d          t	          j        d                     d d d            d S # 1 swxY w Y   d S Nz IV size must be exactly 32 bytesr   r   r(   r!   r   s    r   #test_ige256_encrypt_invalid_iv_sizez3TestIGE256Input.test_ige256_encrypt_invalid_iv_size-       ##J0STT 	T 	T#BJrNNBJrNNBJrNNSSS	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	T 	Tr+   c                     |                      t          d          5  t          j        t	          j        d          t	          j        d                     d d d            d S # 1 swxY w Y   d S r   )r	   r
   r   ige256_decryptr   r   r   s    r   &test_ige256_decrypt_invalid_args_countz6TestIGE256Input.test_ige256_decrypt_invalid_args_count1   r   r   c                     |                      t          | j                  5  t          j        ddd           d d d            d S # 1 swxY w Y   d S r   )r	   r
   r   r   r1   r   s    r   %test_ige256_decrypt_invalid_args_typez5TestIGE256Input.test_ige256_decrypt_invalid_args_type5   r   r   c                     |                      t          d          5  t          j        dt	          j        d          t	          j        d                     d d d            d S # 1 swxY w Y   d S r   r	   r"   r   r1   r   r   r   s    r   test_ige256_decrypt_empty_dataz.TestIGE256Input.test_ige256_decrypt_empty_data9   r$   r%   c                    |                      t          d          5  t          j        t	          j        d          t	          j        d          t	          j        d                     d d d            d S # 1 swxY w Y   d S r'   r6   r   s    r   $test_ige256_decrypt_invalid_key_sizez4TestIGE256Input.test_ige256_decrypt_invalid_key_size=   r*   r+   c                    |                      t          d          5  t          j        t	          j        d          t	          j        d          t	          j        d                     d d d            d S # 1 swxY w Y   d S r-   r6   r   s    r   #test_ige256_decrypt_invalid_iv_sizez3TestIGE256Input.test_ige256_decrypt_invalid_iv_sizeA   r/   r+   N)__name__
__module____qualname__r   r   r   r#   r)   r.   r2   r4   r7   r9   r;    r    r   r   r      s        yD D D- - -I I IT T TT T TD D D- - -I I IT T TT T T T Tr    r   c                      e Zd ZdZdZdZdZd                    dd          Z e	e          D ]bZ
 ee                    dde
 ej         ej        d	e          d
z             ej        e           ej        e                               c e	e          D ]bZ
 ee                    dde
 ej         ej        d	e          d
z             ej        e           ej        e                               cdS )TestIGE256Random@   r   i  a
  
    def test_ige256_random_{mode1}_{count}(self):
        data = {data}
        key = {key}
        iv = {iv}
        
        a = tgcrypto.ige256_{mode1}(data, key, iv)
        b = tgcrypto.ige256_{mode2}(a, key, iv)
        
        self.assertEqual(data, b)
    z
    
encryptdecryptr   r   )mode1mode2countdatakeyivN)r<   r=   r>   DATA_CHUNK_MAX_SIZEKEY_SIZEIV_SIZETESTS_AMOUNTreplaceTEMPLATErangerH   execformatr   r   randomrandintr?   r    r   rA   rA   F   sl       HGL
 	$  |$$ 

 

OORZq2E F F KLLBJx((2:g&&   		
 		
 		
 		
 |$$ 

 

OORZq2E F F KLLBJx((2:g&&   		
 		
 		
 		


 

r    rA   __main__)	r   rU   unittestr   TestCaser   rA   r<   mainr?   r    r   <module>r[      s   & 
			   )T )T )T )T )Th' )T )T )TX)
 )
 )
 )
 )
x( )
 )
 )
X zHMOOOOO r    