U
    ÈZjÏ  ã                   @   s~   d Z ddlZddlmZ ddlmZ dddgZG dd	„ d	ejƒZG d
d„ dejƒZ	i fdd„Z
edkrzdd„ Zejdd� dS )z&Self-test suite for Crypto.Cipher.CASTé    N)Úbchr)ÚCAST)Ú0123456789abcdefZ238b4fe5847e44b2Z 0123456712345678234567893456789az128-bit key)r   Zeb6a711a2c02271bZ01234567123456782345z
80-bit key)r   Z7ac816d16e9b302eZ
0123456712z
40-bit keyc                   @   s   e Zd Zdd„ ZdS )Ú	KeyLengthc                 C   s<   |   ttjtdƒd tj¡ |   ttjtdƒd tj¡ d S )Nr   é   é   )ÚassertRaisesÚ
ValueErrorr   Únewr   ÚMODE_ECB)Úself© r   úc/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/Crypto/SelfTest/Cipher/test_CAST.pyÚrunTest4   s    zKeyLength.runTestN©Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r   2   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   5555555555555555é   )Úoutputs   0000000000000000é   )r   r
   r   ZencryptÚ	bytearrayZassertEqualZdecryptÚ
memoryviewr   Ú	TypeErrorr	   )r   ÚcipherÚptÚctr   ÚresZshorter_outputr   r   r   r   ;   s(    
zTestOutput.runTestNr   r   r   r   r   r   9   s   r   c                 C   s4   ddl m} |tdtƒ}| tƒ ¡ | tƒ ¡ |S )Né   )Úmake_block_testsr   )Úcommonr    r   Ú	test_dataÚappendr   r   )Úconfigr    Ztestsr   r   r   Ú	get_tests[   s
    r%   Ú__main__c                   C   s   t  tƒ ¡S )N)ÚunittestZ	TestSuiter%   r   r   r   r   Ú<lambda>d   ó    r(   Úsuite)ZdefaultTest)Ú__doc__r'   ZCrypto.Util.py3compatr   ZCrypto.Cipherr   r"   ZTestCaser   r   r%   r   r*   Úmainr   r   r   r   Ú<module>   s   ö"