U
    ÈZj6  ã                   @   s6  d Z ddlZddlmZmZ ddlmZ ddddedd	�fd
dd
dedd	�fddddedd	�fddddedd	�fddddedd	�fddddedd	�fddddedd	�fdd d!d"d#d$d%d&d'd(d)d*d+d,d-d.gZG d/d0„ d0ej	ƒZ
G d1d2„ d2ej	ƒZG d3d4„ d4ej	ƒZi fd5d6„Zed7k�r2ddlZd8d9„ Zejd:d;� dS )<z&Self-test suite for Crypto.Cipher.ARC2é    N)ÚbÚbchr©ÚARC2Ú0000000000000000Zebb773f993278effz	RFC2268-1é?   ©Zeffective_keylenÚffffffffffffffffZ278b27e42e2f0d49z	RFC2268-2é@   Z1000000000000001Z30649edf9be7d2c2Z3000000000000000z	RFC2268-3Z6ccf4308974c267fZ88bca90e90875az	RFC2268-5Z1a807d272bbe5db1Z 88bca90e90875a7f0f79c384627bafb2z	RFC2268-6Z2269552ab0f85ca6z	RFC2268-7é€   Z5b78d3a43dfff1f1ZB88bca90e90875a7f0f79c384627bafb216f80a6f85920584c42fceb0be255daf1ez	RFC2268-8é�   )r   Z624fb3e887419e48Ú5068696c6970476c617373z	PCTv201-0)r	   Z79cadef44c4a5a85r   z	PCTv201-1)Ú0001020304050607Z90411525b34e4c2cr   z	PCTv201-2)Ú0011223344556677Z078656aaba61cbfbr   z	PCTv201-3)r   Zd7bcc5dbb4d6e56ar	   z	PCTv201-4)r	   Z7259018ec557b357r	   z	PCTv201-5)r   Z93d20a497f2ccb62r	   z	PCTv201-6)r   Zcb15a7f819c0014dr	   z	PCTv201-7)r   Z63ac98cdf3843a7aÚ6ffffffffffffffff5065746572477265656e6177617953e5ffe553z	PCTv201-8)r	   Z3fb49e2fa12371ddr   z	PCTv201-9)r   Z46414781ab387d5fr   z
PCTv201-10)r   Zbe09dc81feaca271r   z
PCTv201-11)r   Ze64221e608be30abÚ
53e5ffe553z
PCTv201-12)r	   Z862bc60fdcd4d9a9r   z
PCTv201-13)r   Z6a34da50fa5e47der   z
PCTv201-14)r   Z584644c34503122cr   z
PCTv201-15c                   @   s   e Zd Zdd„ ZdS )ÚBufferOverflowTestc                 C   s$   t dƒd }|  ttj|tj¡ dS )zARC2 with keylength > 128Úxi @  N)r   ÚassertRaisesÚ
ValueErrorr   ÚnewÚMODE_ECB)ÚselfÚkey© r   úc/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/Crypto/SelfTest/Cipher/test_ARC2.pyÚrunTestc   s    zBufferOverflowTest.runTestN©Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   `   s   r   c                   @   s   e Zd Zdd„ ZdS )Ú	KeyLengthc                 C   sŽ   t jdt jdd� |  tt jtdƒd t j¡ |  tt jtdƒd t j¡ | jtt jtdƒd t jdd� | jtt jtdƒd t jd	d� d S )
Ns                   é(   r   r   é   r   é   é'   i  )r   r   r   r   r   r   )r   r   r   r   r   j   s    ÿÿzKeyLength.runTestNr   r   r   r   r   r!   h   s   r!   c                   @   s   e Zd Zdd„ ZdS )Ú
TestOutputc                 C   s  t  dt j¡}d}| |¡}tdƒ}|j||d�}|  ||¡ |  |d ¡ |j||d�}|  ||¡ |  |d ¡ ttdƒƒ}|j||d� |  ||¡ |j||d� |  ||¡ | jt	|j|dd� | jt	|j|dd� tdƒ}| jt
|j||d� | jt
|j||d� d S )Ns   4444444444444444s   5555555555555555r$   )Úoutputs   0000000000000000é   )r   r   r   ZencryptÚ	bytearrayZassertEqualZdecryptÚ
memoryviewr   Ú	TypeErrorr   )r   ÚcipherÚptÚctr'   ÚresZshorter_outputr   r   r   r   w   s(    
zTestOutput.runTestNr   r   r   r   r   r&   u   s   r&   c                 C   sL   ddl m} ddlm} ||dtƒ}| tƒ ¡ | tƒ ¡ |tƒ g7 }|S )Nr   r   é   )Úmake_block_testsr   )	ÚCrypto.Cipherr   Úcommonr1   Ú	test_dataÚappendr   r!   r&   )Úconfigr   r1   Ztestsr   r   r   Ú	get_tests—   s    r7   Ú__main__c                   C   s   t  tƒ ¡S )N)ÚunittestZ	TestSuiter7   r   r   r   r   Ú<lambda>¤   ó    r:   Úsuite)ZdefaultTest)Ú__doc__r9   ZCrypto.Util.py3compatr   r   r2   r   Údictr4   ZTestCaser   r!   r&   r7   r   r<   Úmainr   r   r   r   Ú<module>   sr    ÿ ÿ ÿ ÿ ÿ ÿ þÆ>"
