U
    ç;ãgï  ã                   @   sX   d dl Z d dlZd dlZd dlZG dd„ dejƒZG dd„ dejƒZedkrTe ¡  dS )é    Nc                   @   s`   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZdS )ÚTestIGE256Inputz]'\w+' does not (support|have) the buffer interface|a bytes-like object is required, not '\w+'c              	   C   s4   |   td¡ t t d¡t d¡¡ W 5 Q R X d S ©Nz0function takes exactly \d arguments \(\d given\)é   é    )ÚassertRaisesRegexÚ	TypeErrorÚtgcryptoÚige256_encryptÚosÚurandom©Úself© r   úR/opt/bot/vods_filmes/script/venv/lib/python3.8/site-packages/tests/ige/test_ige.pyÚ&test_ige256_encrypt_invalid_args_count   s    z6TestIGE256Input.test_ige256_encrypt_invalid_args_countc              	   C   s,   |   t| j¡ t ddd¡ W 5 Q R X d S ©Né   é   é   )r   r   ÚTYPE_ERROR_PATTERNr   r	   r   r   r   r   Ú%test_ige256_encrypt_invalid_args_type!   s    z5TestIGE256Input.test_ige256_encrypt_invalid_args_typec              	   C   s6   |   td¡  t dt d¡t d¡¡ W 5 Q R X d S ©NzData must not be emptyó    r   ©r   Ú
ValueErrorr   r	   r
   r   r   r   r   r   Útest_ige256_encrypt_empty_data%   s    z.TestIGE256Input.test_ige256_encrypt_empty_datac              	   C   s<   |   td¡& t t d¡t d¡t d¡¡ W 5 Q R X d S ©Nz!Key size must be exactly 32 bytesr   é   r   r   r   r   r   r   Ú$test_ige256_encrypt_invalid_key_size)   s    z4TestIGE256Input.test_ige256_encrypt_invalid_key_sizec              	   C   s<   |   td¡& t t d¡t d¡t d¡¡ W 5 Q R X d S ©Nz IV size must be exactly 32 bytesr   r   r   r   r   r   r   r   Ú#test_ige256_encrypt_invalid_iv_size-   s    z3TestIGE256Input.test_ige256_encrypt_invalid_iv_sizec              	   C   s4   |   td¡ t t d¡t d¡¡ W 5 Q R X d S r   )r   r   r   Úige256_decryptr
   r   r   r   r   r   Ú&test_ige256_decrypt_invalid_args_count1   s    z6TestIGE256Input.test_ige256_decrypt_invalid_args_countc              	   C   s,   |   t| j¡ t ddd¡ W 5 Q R X d S r   )r   r   r   r   r!   r   r   r   r   Ú%test_ige256_decrypt_invalid_args_type5   s    z5TestIGE256Input.test_ige256_decrypt_invalid_args_typec              	   C   s6   |   td¡  t dt d¡t d¡¡ W 5 Q R X d S r   ©r   r   r   r!   r
   r   r   r   r   r   Útest_ige256_decrypt_empty_data9   s    z.TestIGE256Input.test_ige256_decrypt_empty_datac              	   C   s<   |   td¡& t t d¡t d¡t d¡¡ W 5 Q R X d S r   r$   r   r   r   r   Ú$test_ige256_decrypt_invalid_key_size=   s    z4TestIGE256Input.test_ige256_decrypt_invalid_key_sizec              	   C   s<   |   td¡& t t d¡t d¡t d¡¡ W 5 Q R X d S r   r$   r   r   r   r   Ú#test_ige256_decrypt_invalid_iv_sizeA   s    z3TestIGE256Input.test_ige256_decrypt_invalid_iv_sizeN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r    r"   r#   r%   r&   r'   r   r   r   r   r      s   r   c                   @   s´   e Zd ZdZdZdZdZd dd¡Ze	eƒD ]<Z
eejdde
e e d	e¡d
 ¡e e¡e e¡dƒ q,e	eƒD ]<Z
eejdde
e e d	e¡d
 ¡e e¡e e¡dƒ qrd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
    Ú
ZencryptZdecryptr   r   )Zmode1Zmode2ÚcountÚdataÚkeyZivN)r(   r)   r*   ZDATA_CHUNK_MAX_SIZEZKEY_SIZEZIV_SIZEZTESTS_AMOUNTÚreplaceÚTEMPLATEÚranger.   ÚexecÚformatr
   r   ÚrandomÚrandintr   r   r   r   r+   F   s<   
 öúÿúÿr+   Ú__main__)	r
   r6   Zunittestr   ZTestCaser   r+   r(   Úmainr   r   r   r   Ú<module>   s   ,,