Ë
    	š„jï  ã                   ó¦   — 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                  «        yy)é    Nc                   óL   — 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y)ÚTestIGE256Inputz]'\w+' does not (support|have) the buffer interface|a bytes-like object is required, not '\w+'c                 óÒ   — | j                  t        d«      5  t        j                  t	        j
                  d«      t	        j
                  d«      «       d d d «       y # 1 sw Y   y xY w©Nz0function takes exactly \d arguments \(\d given\)é   é    )ÚassertRaisesRegexÚ	TypeErrorÚtgcryptoÚige256_encryptÚosÚurandom©Úselfs    úI/var/www/html/GAP/venv/lib/python3.12/site-packages/tests/ige/test_ige.pyÚ&test_ige256_encrypt_invalid_args_countz6TestIGE256Input.test_ige256_encrypt_invalid_args_count   óL   € Ø×#Ñ#¤IÐ/bÓcñ 	DÜ×#Ñ#¤B§J¡J¨r£N´B·J±J¸r³NÔC÷	D÷ 	Dñ 	Dúó   —=AÁA&c                 óœ   — | j                  t        | j                  «      5  t        j                  ddd«       d d d «       y # 1 sw Y   y xY w©Né   é   é   )r	   r
   ÚTYPE_ERROR_PATTERNr   r   r   s    r   Ú%test_ige256_encrypt_invalid_args_typez5TestIGE256Input.test_ige256_encrypt_invalid_args_type!   ó?   € Ø×#Ñ#¤I¨t×/FÑ/FÓGñ 	-Ü×#Ñ# A q¨!Ô,÷	-÷ 	-ñ 	-úó   ¡AÁAc                 óÔ   — | j                  t        d«      5  t        j                  dt	        j
                  d«      t	        j
                  d«      «       d d d «       y # 1 sw Y   y xY w©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%   óN   € Ø×#Ñ#¤JÐ0IÓJñ 	IÜ×#Ñ# C¬¯©°B«¼¿¹ÀB»ÔH÷	I÷ 	Iñ 	Iúó   —>AÁA'c                 óú   — | j                  t        d«      5  t        j                  t	        j
                  d«      t	        j
                  d«      t	        j
                  d«      «       d d d «       y # 1 sw Y   y xY w©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)   óV   € Ø×#Ñ#¤JÐ0TÓUñ 	TÜ×#Ñ#¤B§J¡J¨r£N´B·J±J¸r³NÄBÇJÁJÈrÃNÔS÷	T÷ 	Tñ 	Túó   —AA1Á1A:c                 óú   — | j                  t        d«      5  t        j                  t	        j
                  d«      t	        j
                  d«      t	        j
                  d«      «       d d d «       y # 1 sw Y   y xY w©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-   óV   € Ø×#Ñ#¤JÐ0SÓTñ 	TÜ×#Ñ#¤B§J¡J¨r£N´B·J±J¸r³NÄBÇJÁJÈrÃNÔS÷	T÷ 	Tñ 	Túr+   c                 óÒ   — | j                  t        d«      5  t        j                  t	        j
                  d«      t	        j
                  d«      «       d d d «       y # 1 sw Y   y xY w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                 óœ   — | j                  t        | j                  «      5  t        j                  ddd«       d d d «       y # 1 sw Y   y xY wr   )r	   r
   r   r   r1   r   s    r   Ú%test_ige256_decrypt_invalid_args_typez5TestIGE256Input.test_ige256_decrypt_invalid_args_type5   r   r   c                 óÔ   — | j                  t        d«      5  t        j                  dt	        j
                  d«      t	        j
                  d«      «       d d d «       y # 1 sw Y   y xY wr   ©r	   r"   r   r1   r   r   r   s    r   Útest_ige256_decrypt_empty_dataz.TestIGE256Input.test_ige256_decrypt_empty_data9   r$   r%   c                 óú   — | j                  t        d«      5  t        j                  t	        j
                  d«      t	        j
                  d«      t	        j
                  d«      «       d d d «       y # 1 sw Y   y xY wr'   r6   r   s    r   Ú$test_ige256_decrypt_invalid_key_sizez4TestIGE256Input.test_ige256_decrypt_invalid_key_size=   r*   r+   c                 óú   — | j                  t        d«      5  t        j                  t	        j
                  d«      t	        j
                  d«      t	        j
                  d«      «       d d d «       y # 1 sw Y   y xY w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      sB   „ ØyÐòDò-òIòTòTòDò-òIòTóTr    r   c                   óø  — e Zd ZdZdZdZdZdj                  dd«      Z e	e«      D ]c  Z
 eej                  dde
 ej                   ej                   d	e«      d
z  «       ej                  e«       ej                  e«      ¬«      «       Œe  e	e«      D ]c  Z
 eej                  dde
 ej                   ej                   d	e«      d
z  «       ej                  e«       ej                  e«      ¬«      «       Œe y)Ú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   s  „ ØÐØ€HØ€Gà€Lð
÷ 	‰�˜$Óð ñ �|Ó$ò 

ˆÙØ�O‰OØØØØ�R—Z‘Z  §¡¨qÐ2EÓ FÈÑ KÓLØ�B—J‘J˜xÓ(Ø�2—:‘:˜gÓ&ð ó õ		
ð

ñ �|Ó$ò 

ˆÙØ�O‰OØØØØ�R—Z‘Z  §¡¨qÐ2EÓ FÈÑ KÓLØ�B—J‘J˜xÓ(Ø�2—:‘:˜gÓ&ð ó õ		
ñ

r    rA   Ú__main__)	r   rU   Úunittestr   ÚTestCaser   rA   r<   Úmainr?   r    r   ú<module>r[      sU   ðó& 
Û Û ã ô)T�h×'Ñ'ô )TôX)
�x×(Ñ(ô )
ðX ˆzÒØ€H‡M�M…Oð r    