U
    g                     @   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 Cryptodome.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   H/tmp/pip-unpacked-wheel-_q8s9isk/Cryptodome/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	bytearray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!   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Cryptodome.Util.py3compatr   ZCryptodome.Cipherr   r#   ZTestCaser   r   r'   r   r,   mainr   r   r   r   <module>   s   "