U
    MfJ                     @   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 Cryptodome.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63ac98cdf3843a7a6ffffffffffffffff5065746572477265656e6177617953e5ffe553z	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   H/tmp/pip-unpacked-wheel-l_0d1exj/Cryptodome/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	bytearray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   )	Cryptodome.Cipherr   commonr2   	test_dataappendr   r!   r&   )configr   r2   testsr   r   r   	get_tests   s    r9   __main__c                   C   s   t t S )N)unittestZ	TestSuiter9   r   r   r   r   <lambda>       r<   suite)ZdefaultTest)__doc__r;   ZCryptodome.Util.py3compatr   r   r3   r   dictr5   ZTestCaser   r!   r&   r9   r   r>   mainr   r   r   r   <module>   sr          >"
