U
    MfJ                  7   @   s   d Z ddlZddlmZ ddlmZ ddddd	d
ddddddddddddddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2d3d4d5d6d7d8d9d:g7ZG d;d< d<ejZG d=d> d>ejZ	i fd?d@Z
edAkrddlZdBdC ZejdDdE dS )Fz.Self-test suite for Cryptodome.Cipher.Blowfish    N)bchr)Blowfish)0000000000000000Z4ef997456198dd78r   )ffffffffffffffffZ51866fd5b85ecb8ar   )Z1000000000000001Z7d856f9a613063f2Z3000000000000000)1111111111111111Z2466dd878b963c9dr   )r   Z61f9c3802281b0960123456789abcdef)r   Z7d0cc630afda1ec7r   )r   Z0aceab0fc6a0a28dfedcba9876543210)Z01a1d6d039776742Z59c68245eb05282bZ7ca110454a1a6e57)Z5cd54ca83def57daZb1b8cc0b250f09a0Z0131d9619dc1376e)Z0248d43806f67172Z1730e5778bea1da4Z07a1133e4a0b2686)Z51454b582ddf440aZa25e7856cf2651ebZ3849674c2602319e)Z42fd443059577fa2Z353882b109ce8f1aZ04b915ba43feb5b6)Z059b5e0851cf143aZ48f4d0884c379918Z0113b970fd34f2ce)Z0756d8e0774761d2Z432193b78951fc98Z0170f175468fb5e6)Z762514b829bf486aZ13f04154d69d1ae5Z43297fad38e373fe)Z3bdd119049372802Z2eedda93ffd39c79Z07a7137045da2a16)Z26955f6835af609aZd887e0393c2da6e3Z04689104c2fd3b2f)Z164d5e404f275232Z5f99d04f5b163969Z37d06bb516cb7546)Z6b056e18759f5ccaZ4a057a3b24d3977bZ1f08260d1ac2465e)Z004bd6ef09176062Z452031c1e4fada8eZ584023641aba6176)Z480d39006ee762f2Z7555ae39f59b87bdZ025816164629b007)Z437540c8698f3cfaZ53c55f9cb49fc019Z49793ebc79b3258f)Z072d43a077075292Z7a8e7bfa937e89a3Z4fb05e1515ab73a7)Z02fe55778117f12aZcf9c5d7a4986adb5Z49e95d6d4ca229bf)Z1d9d5c5018f728c2Zd1abb290658bc778Z018310dc409b26d6)Z305532286d6f295aZ55cb3774d13ef201Z1c587f1c13924fef)r   Zfa34ec4847b268b2Z0101010101010101)r   Za790795108ea3caeZ1f1f1f1f0e0e0e0e)r   Zc39e072d9fac631dZe0fee0fef1fef1fe)r   Z014933e0cdaff6e4r   )r   Zf21e9a77b71c49bcr   )r   Z245946885754369ar   )r   Z6b5c5a9c5d9e0a5ar   )r   Zbe1e639408640f05Zf0e1d2c3)r   Zb39e44481bdb1e6eZ
f0e1d2c3b4)r   Z9457aa83b1928c0dZf0e1d2c3b4a5)r   Z8bb77032f960629dZf0e1d2c3b4a596)r   Ze87a244e2cc85e82Zf0e1d2c3b4a59687)r   Z15750e7a4f4ec577Zf0e1d2c3b4a5968778)r   Z122ba70b3ab64ae0Zf0e1d2c3b4a596877869)r   Z3a833c9affc537f6Zf0e1d2c3b4a5968778695a)r   Z9409da87a90f6bf2Zf0e1d2c3b4a5968778695a4b)r   Z884f80625060b8b4Zf0e1d2c3b4a5968778695a4b3c)r   Z1f85031c19e11968Zf0e1d2c3b4a5968778695a4b3c2d)r   Z79d9373a714ca34fZf0e1d2c3b4a5968778695a4b3c2d1e)r   Z93142887ee3be15cZ f0e1d2c3b4a5968778695a4b3c2d1e0f)r   Z03429e838ce2d14bZ"f0e1d2c3b4a5968778695a4b3c2d1e0f00)r   Za4299e27469ff67bZ$f0e1d2c3b4a5968778695a4b3c2d1e0f0011)r   Zafd5aed1c1bc96a8Z&f0e1d2c3b4a5968778695a4b3c2d1e0f001122)r   Z10851c0e3858da9fZ(f0e1d2c3b4a5968778695a4b3c2d1e0f00112233)r   Ze6f51ed79b9db21fZ*f0e1d2c3b4a5968778695a4b3c2d1e0f0011223344)r   Z64a6e14afd36b46fZ,f0e1d2c3b4a5968778695a4b3c2d1e0f001122334455)r   Z80c7d7d45a5479adZ.f0e1d2c3b4a5968778695a4b3c2d1e0f00112233445566)r   Z05044b62fa52d080Z0f0e1d2c3b4a5968778695a4b3c2d1e0f0011223344556677c                   @   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      9   )assertRaises
ValueErrorr   newr   MODE_ECB)self r   L/tmp/pip-unpacked-wheel-l_0d1exj/Cryptodome/SelfTest/Cipher/test_Blowfish.pyrunTestl   s    zKeyLength.runTestN__name__
__module____qualname__r   r   r   r   r   r	   j   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   u   s(    
zTestOutput.runTestNr   r   r   r   r   r   s   s   r   c                 C   s4   ddl m} |tdt}|t  |t g7 }|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>       r.   suite)ZdefaultTest)__doc__r-   ZCryptodome.Util.py3compatr   ZCryptodome.Cipherr   r'   ZTestCaser	   r   r+   r   r0   mainr   r   r   r   <module>   s   H	"