o
    Þý°jJ  ã                   @   s8  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ršddlZd8d9„ Zejd:d;� dS dS )<z*Self-test suite for Cryptodome.Cipher.ARC2é    N)ÚbÚbchr©ÚARC2Ú0000000000000000Úebb773f993278effz	RFC2268-1é?   ©Úeffective_keylenÚffffffffffffffffÚ278b27e42e2f0d49z	RFC2268-2é@   Ú1000000000000001Ú30649edf9be7d2c2Ú3000000000000000z	RFC2268-3Ú6ccf4308974c267fÚ88bca90e90875az	RFC2268-5Ú1a807d272bbe5db1Ú 88bca90e90875a7f0f79c384627bafb2z	RFC2268-6Ú2269552ab0f85ca6z	RFC2268-7é€   Ú5b78d3a43dfff1f1ÚB88bca90e90875a7f0f79c384627bafb216f80a6f85920584c42fceb0be255daf1ez	RFC2268-8é�   )r   Ú624fb3e887419e48Ú5068696c6970476c617373z	PCTv201-0)r   Ú79cadef44c4a5a85r   z	PCTv201-1)Ú0001020304050607Ú90411525b34e4c2cr   z	PCTv201-2)Ú0011223344556677Ú078656aaba61cbfbr   z	PCTv201-3)r   Úd7bcc5dbb4d6e56ar   z	PCTv201-4)r   Ú7259018ec557b357r   z	PCTv201-5)r   Ú93d20a497f2ccb62r   z	PCTv201-6)r   Úcb15a7f819c0014dr   z	PCTv201-7)r   Ú63ac98cdf3843a7aÚ6ffffffffffffffff5065746572477265656e6177617953e5ffe553z	PCTv201-8)r   Ú3fb49e2fa12371ddr&   z	PCTv201-9)r   Ú46414781ab387d5fr&   z
PCTv201-10)r   Úbe09dc81feaca271r&   z
PCTv201-11)r   Úe64221e608be30abÚ
53e5ffe553z
PCTv201-12)r   Ú862bc60fdcd4d9a9r+   z
PCTv201-13)r   Ú6a34da50fa5e47der+   z
PCTv201-14)r   Ú584644c34503122cr+   z
PCTv201-15c                   @   ó   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© r8   ú—/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/Cryptodome/SelfTest/Cipher/test_ARC2.pyÚrunTestc   s   zBufferOverflowTest.runTestN©Ú__name__Ú
__module__Ú__qualname__r:   r8   r8   r8   r9   r0   `   s    r0   c                   @   r/   )Ú	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   r4   r5   r2   r3   r   )r6   r8   r8   r9   r:   j   s   ÿ
ÿzKeyLength.runTestNr;   r8   r8   r8   r9   r?   h   ó    r?   c                   @   r/   )Ú
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   5555555555555555rB   )Úoutputs   0000000000000000é   )r   r4   r5   ÚencryptÚ	bytearrayÚassertEqualÚdecryptÚ
memoryviewr2   Ú	TypeErrorr3   )r6   ÚcipherÚptÚctrF   ÚresÚshorter_outputr8   r8   r9   r:   w   s(   
zTestOutput.runTestNr;   r8   r8   r8   r9   rE   u   rD   rE   c                 C   sL   ddl m} ddlm} ||dtƒ}| tƒ ¡ | tƒ ¡ |tƒ g7 }|S )Nr   r   é   )Úmake_block_testsr   )	ÚCryptodome.Cipherr   ÚcommonrT   Ú	test_dataÚappendr0   r?   rE   )Úconfigr   rT   Útestsr8   r8   r9   Ú	get_tests—   s   r[   Ú__main__c                   C   s   t  tƒ ¡S )N)ÚunittestÚ	TestSuiter[   r8   r8   r8   r9   Ú<lambda>¤   s    r_   Úsuite)ÚdefaultTest)Ú__doc__r]   ÚCryptodome.Util.py3compatr   r   rU   r   ÚdictrW   ÚTestCaser0   r?   rE   r[   r<   r`   Úmainr8   r8   r8   r9   Ú<module>   sh   
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
þÆ>"ý