o
    ,˜Žjï  ã                   @   s\   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r,e ¡  dS 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   óJ   |   td¡� t t d¡t d¡¡ W d   ƒ d S 1 sw   Y  d S ©Nz0function takes exactly \d arguments \(\d given\)é   é    )ÚassertRaisesRegexÚ	TypeErrorÚtgcryptoÚige256_encryptÚosÚurandom©Úself© r   úO/var/www/kodo/Anonymous/send/lib/python3.10/site-packages/tests/ige/test_ige.pyÚ&test_ige256_encrypt_invalid_args_count   ó   "ÿz6TestIGE256Input.test_ige256_encrypt_invalid_args_countc                 C   óB   |   t| j¡� t ddd¡ W d   ƒ d S 1 sw   Y  d S ©Né   é   é   )r   r   ÚTYPE_ERROR_PATTERNr	   r
   r   r   r   r   Ú%test_ige256_encrypt_invalid_args_type!   ó   "ÿz5TestIGE256Input.test_ige256_encrypt_invalid_args_typec                 C   óL   |   td¡� t dt d¡t d¡¡ W d   ƒ d S 1 sw   Y  d S ©NzData must not be emptyó    r   ©r   Ú
ValueErrorr	   r
   r   r   r   r   r   r   Útest_ige256_encrypt_empty_data%   ó   "ÿz.TestIGE256Input.test_ige256_encrypt_empty_datac                 C   óR   |   td¡� t t d¡t d¡t d¡¡ W d   ƒ d S 1 s"w   Y  d S ©Nz!Key size must be exactly 32 bytesr   é   r   r   r   r   r   r   Ú$test_ige256_encrypt_invalid_key_size)   ó   ""ÿz4TestIGE256Input.test_ige256_encrypt_invalid_key_sizec                 C   r"   ©Nz IV size must be exactly 32 bytesr   r   r$   r   r   r   r   r   Ú#test_ige256_encrypt_invalid_iv_size-   r&   z3TestIGE256Input.test_ige256_encrypt_invalid_iv_sizec                 C   r   r   )r   r   r	   Úige256_decryptr   r   r   r   r   r   Ú&test_ige256_decrypt_invalid_args_count1   r   z6TestIGE256Input.test_ige256_decrypt_invalid_args_countc                 C   r   r   )r   r   r   r	   r)   r   r   r   r   Ú%test_ige256_decrypt_invalid_args_type5   r   z5TestIGE256Input.test_ige256_decrypt_invalid_args_typec                 C   r   r   ©r   r   r	   r)   r   r   r   r   r   r   Útest_ige256_decrypt_empty_data9   r!   z.TestIGE256Input.test_ige256_decrypt_empty_datac                 C   r"   r#   r,   r   r   r   r   Ú$test_ige256_decrypt_invalid_key_size=   r&   z4TestIGE256Input.test_ige256_decrypt_invalid_key_sizec                 C   r"   r'   r,   r   r   r   r   Ú#test_ige256_decrypt_invalid_iv_sizeA   r&   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�ƒ q9d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)r0   r1   r2   ÚDATA_CHUNK_MAX_SIZEÚKEY_SIZEÚIV_SIZEÚTESTS_AMOUNTÚreplaceÚTEMPLATEÚranger:   ÚexecÚformatr   r   ÚrandomÚrandintr   r   r   r   r3   F   s>    
öúÿúÿÿr3   Ú__main__)	r   rG   Úunittestr	   ÚTestCaser   r3   r0   Úmainr   r   r   r   Ú<module>   s   ,,ÿ