U
    MfZ                     @   s   d Z ddlmZ ddlmZ ddlmZ ddlmZ ddd	d
d dfddgZ	dd Z
dd Zdd Zi fddZedkrddlZdd Zejdd dS )z*Self-test suite for Cryptodome.Hash.SHA512    )hexlify)SHA512   )make_hash_tests)load_test_vectors)Zddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49fabc)Z8e959b75dae313da8cf4f72814fc143f8f7779c6eb9f7fa17299aeadb6889018501d289e4900f7e4331b99dec4b5433ac7d329eeb6dd26545e96e55b874be909ZpabcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstuZe718483d0ce769644e2e42c7bc15b4638e1f98b13b2044285632a803afa973ebde0ff244877ea60a4cb0432ce577c31beb009c5c2c49aa2e4eadb217ad8cc09bai@B z'a' * 10**6)Zcf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e )Zaf9ed2de700433b803240a552b41b5a472a6ef3fe1431a722b2063c75e9f07451f67a28e37d09cde769424c96aea6f8971389db9e1993d6c565c3c71b855723cz;Franz jagt im komplett verwahrlosten Taxi quer durch Bayernc               	   C   s   t dddddd ipg } td d  }| D ]V}z|dr>W q*W n tk
rT   Y nX |jdkrfd	|_|t|j|j|j	f q*t
td
|ddd}|S )NZHashZSHA2zSHA512ShortMsg.rspzKAT SHA-512lenc                 S   s   t | S Nintx r   H/tmp/pip-unpacked-wheel-l_0d1exj/Cryptodome/SelfTest/Hash/test_SHA512.py<lambda>:       z"get_tests_SHA512.<locals>.<lambda>[r   r   r   @   z2.16.840.1.101.3.4.2.3)digest_sizeoid)r   test_data_512_other
startswithAttributeErrorr   msgappendr   mddescr   r   Ztest_vectorsZ	test_datatvtestsr   r   r   get_tests_SHA5125   s,    


r#   c               	   C   s   t dddddd ipg } g }| D ]V}z|dr6W q"W n tk
rL   Y nX |jdkr^d	|_|t|j|j|jf q"t	t
d
|ddddid}|S )Nr
   zSHA512_224ShortMsg.rspzKAT SHA-512/224r   c                 S   s   t | S r   r   r   r   r   r   r   R   r   z&get_tests_SHA512_224.<locals>.<lambda>r   r   r   z
SHA512/224   z2.16.840.1.101.3.4.2.5truncateZ224r   r   Zextra_paramsr   r   r   r   r   r   r   r   r   r   r   r    r   r   r   get_tests_SHA512_224M   s.    


r(   c               	   C   s   t dddddd ipg } g }| D ]V}z|dr6W q"W n tk
rL   Y nX |jdkr^d	|_|t|j|j|jf q"t	t
d
|ddddid}|S )Nr
   zSHA512_256ShortMsg.rspzKAT SHA-512/256r   c                 S   s   t | S r   r   r   r   r   r   r   k   r   z&get_tests_SHA512_256.<locals>.<lambda>r   r   r   z
SHA512/256    z2.16.840.1.101.3.4.2.6r%   Z256r&   r'   r    r   r   r   get_tests_SHA512_256f   s.    


r*   c                 C   s&   g }|t  7 }|t 7 }|t 7 }|S r   )r#   r(   r*   )configr"   r   r   r   	get_tests   s
    


r,   __main__Nc                   C   s   t t S r   )unittestZ	TestSuiter,   r   r   r   r   r      r   r   suite)ZdefaultTest)__doc__binasciir   ZCryptodome.Hashr   commonr   ZCryptodome.SelfTest.loaderr   r   r#   r(   r*   r,   __name__r.   r/   mainr   r   r   r   <module>   s$   