Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.9/test/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.9/test/__pycache__/test_hashlib.cpython-39.opt-1.pyc

a

��g���@sddlZddlmZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
ddlmZmZmZddlmZeed�Zhd�Ze�d�Zedur�eZnd	d
�e�d����d�D�Zed
dgd�Zeekr�ed
dgd�ZndZzddlmZm Z m!Z!m"Z"Wn*e#�y@dZdZ e$�Z!dd�Z"Yn0zddl%Z%Wne#�yfdZ%Yn0e
�&e%d�Z'zddl(Z(Wne#�y�dZ(Yn0e
j)dd�Z*e
�&e*�o�e(d�Z+dd�Z,dZ-dd�Z.Gdd�de
j/�Z0Gdd �d e
j/�Z1e2d!k�re
�3�dS)"�N)�	unhexlify)�support)�_4G�
bigmemtest�import_fresh_module)�
HTTPExceptionZgettotalrefcount>�sha256Zblake2�sha512Zsha3�sha1�md5ZPY_BUILTIN_HASHLIB_HASHEScCsh|]}|���qS�)�strip)�.0�mrr�-/usr/local/lib/python3.9/test/test_hashlib.py�	<setcomp>"sr�"�,�hashlib�_hashlib)Zfresh)Zblocked)�HASH�HASHXOF�openssl_md_meth_names�
get_fips_modecCsdS�Nrrrrrrr6srzrequires _blake2T)Zubzrequires _sha3cCs6d}d}|D]$}|||d?d@||d@7}q|S)NZ0123456789abcdef���r)�s�h�r�irrr�hexstrJs
"r"z(http://www.pythontest.net/hashlib/{}.txtc	cs�t�|�}zt�|�}Wn&ttfy>t�d�|���Yn0|�T|D]>}|��}|�	d�sJ|sfqJ|�
d�}t�|d�|d<|VqJWd�n1s�0YdS)NzCould not retrieve {}�#rr)
�URL�formatrZopen_urlresource�OSErrorr�unittestZSkipTestr
�
startswith�split�bytes�fromhex)�	hash_name�urlZtestdata�line�partsrrr�read_vectorsUs

r0cs�eZdZdZddhZejdkp eZdd�Z	�fdd�Z
ed	d
��Zedd��Z
d
d�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd�d&d'�Zd(d)�Zd*d+�Zed,d-��Zed.d/��Z d�d2d3�Z!d4d5�Z"ed6d7��Z#d8d9�Z$ed:d;��Z%ed<d=��Z&d>d?�Z'd@dA�Z(dBdC�Z)e*�+e,j-e.dDkdE�e/e.dDdFd%dG�dHdI���Z0e*�+e,j-e.dFkdE�e/e.dFdFd%dG�dJdK���Z1e*�+e,j-e.dFkdE�e/e.dFdFd%dG�dLdM���Z2dNdO�Z3dPdQ�Z4dRdS�Z5dTdU�Z6dVdW�Z7dXdY�Z8dZd[�Z9d\d]�Z:d^d_�Z;d`da�Z<dbdc�Z=ddde�Z>dfdg�Z?dhdi�Z@djdk�ZAdldm�ZBdndo�ZCdpdq�ZDdrds�ZEdtdu�ZFdvdw�ZGdxdy�ZHedzd{��ZIed|d}��ZJed~d��ZKed�d���ZLed�d���ZMed�d���ZNed�d���ZOed�d���ZPed�d���ZQed�d���ZRed�d���ZSed�d���ZTed�d���ZUed�d���ZVed�d���ZWed�d���ZXed�d���ZYed�d���ZZed�d���Z[ed�d���Z\ed�d���Z]ed�d���Z^d�d��Z_e`jad�d���Zbd�d��Zce*�deed1ud��d�d���Zf�ZgS)��HashLibTestCase)r�MD5r
ZSHA1�sha224ZSHA224r�SHA256�sha384ZSHA384r	ZSHA512�blake2b�blake2s�sha3_224�sha3_256�sha3_384�sha3_512�	shake_128�	shake_256r<r=�posixc
CsRzt�|�WStyL}z(|jr8|tvr8t�d|�WYd}~n
d}~00dS)z@Import a module and return a reference to it or None on failure.z%Did a C extension fail to compile? %sN)�	importlib�
import_module�ModuleNotFoundError�_warn_on_extension_import�builtin_hashes�warnings�warn)�self�module_name�errorrrr�_conditional_import_modulers$z*HashLibTestCase._conditional_import_modulec	st�}�jD]}|�|���q��d�}|r<|�ddh�i�_|D] }trZ|�d�rZqFt��j|<qF�j�	�D]0\}}|�t
t|��d|fdd�}|�|�qr��d�}|�_|�r,��
t|d����
t|d	���j�	�D]F\}}t
|d
|d�}	|	r�z
|	�Wnt�yYq�0|�|	�q�fdd�}
��d
�}|�rP|
d���d�}|�rh|
d���d�}
|
�r�|
d�|
d���d�}|�r�|
d�|
d�|�r�|
d�|
d�t�s��d�}|�r|
d�|
d�|
d�|
d�|
d�|
d�tt��j|i|��dS)N�_blake2r6r7Zsha3_c[s.|durtj|fi|��Stj||fi|��S�N)r�new)�dataZ_alg�kwargsrrr�_test_algorithm_via_hashlib_new�szAHashLibTestCase.__init__.<locals>._test_algorithm_via_hashlib_newr�openssl_md5Zopenssl_sha1Zopenssl_cs"ttd�|�}�j|�|�dS)N�__get_builtin_constructor)�getattrr�constructors_to_test�add)�name�constructor�rFrr�add_builtin_constructor�sz9HashLibTestCase.__init__.<locals>.add_builtin_constructor�_md5r�_sha1r
�_sha256r3r�_sha512r5r	�_sha3r8r9r:r;r<r=)�set�supported_hash_namesrT�lowerrI�updaterS�	SKIP_SHA3r(�itemsrRrr�
assertTrue�hasattr�
ValueError�superr1�__init__)rF�argsrNZ
algorithms�	algorithmrJ�constructorsrOrrVrXrYrZr[r\r]��	__class__rWrrh{sp








zHashLibTestCase.__init__cCs|j��}tj�|�SrK)rS�values�	itertools�chain�
from_iterable)rFrkrrr�hash_constructors�s
z!HashLibTestCase.hash_constructorscCst�SrK)rrWrrr�is_fips_mode�szHashLibTestCase.is_fips_modecCsLt�dtd��}|jD]0}||dd�}|j|jvr>|�d�q|��qdS)N�b�
F�Zusedforsecurity�)�array�rangerrrU�shakes�	hexdigest)rF�a�cons�crrr�test_hash_array�s
zHashLibTestCase.test_hash_arraycCs"|�tjtdd�|jD���dS)Ncss|]}|��r|VqdSrK)�islower)rZ_algorrr�	<genexpr>�s�z=HashLibTestCase.test_algorithms_guaranteed.<locals>.<genexpr>)�assertEqualr�algorithms_guaranteedr^r_rWrrr�test_algorithms_guaranteed�s�z*HashLibTestCase.test_algorithms_guaranteedcCsD|�ttj��tj��|�dtj�tjD]}tj|dd�}q,dS)NZ	undefinedFrv)rdr^rr��issubset�algorithms_available�assertNotInrL)rFrU�digestrrr�test_algorithms_available�s�
z)HashLibTestCase.test_algorithms_availablecCs�tjddd�|jr|�d�|jD]}|dd�|ddd�q$tjddd�tjdd�|jdur�|jjddd�|jjdd�dS)NrTrvzskip in FIPS mode�r)rrLrs�skipTestrrrrrP�rFr}rrr�test_usedforsecurity_true�s



z)HashLibTestCase.test_usedforsecurity_truecCsvtjddd�|jD]}|dd�|ddd�qtjddd�tjdd�|jdurr|jjddd�|jjdd�dS)NrFrvr�r)rrLrrrrrPr�rrr�test_usedforsecurity_false�s


z*HashLibTestCase.test_usedforsecurity_falsecCs$|�ttjd�|�ttjd�dS)Nzspam spam spam spam spam�)�assertRaisesrfrrL�	TypeErrorrWrrr�test_unknown_hash�sz!HashLibTestCase.test_unknown_hashcCs|�t�d�jd�dS)Nr4r)r�rrLrUrWrrr�test_new_upper_to_lowersz'HashLibTestCase.test_new_upper_to_lowerc	Cs�ttd�}ttd�}|�t|d�zddl}WntyJ|�d�Yn0dtjd<|�	�z0|�t|d�Wdt
�vr�|tjd<q�tjd=n dt
�vr�|tjd<ntjd=0|�t|d�|d�}|�||j
�|�t|�d	dg�dS)
NrQZ__builtin_constructor_cache�testrz_md5 module not availablerYr�r2)rRrr�rfrY�ImportErrorr��sys�modules�clear�localsr�ZassertIsrr��sorted)rFZget_builtin_constructorZbuiltin_constructor_cacherYrVrrr�test_get_builtin_constructors2��


�

z,HashLibTestCase.test_get_builtin_constructorcCs~|jD]r}|dd�}|j|jvrP|�|�d�t�|�t|�d��|�d��q|�|��t�|�t|���|���qdS)NFrvrw)	rrrUrz�assertIsInstancer�r*r�r"r{�rFr}rrrr�test_hexdigest s

zHashLibTestCase.test_hexdigestcCs�d}|jD]�}|dd�}|j|jvr&q
tdur:t|t�r:q
|j|jfD]R}|�t|d�|D]:}|�tt	f��||�Wd�q\1s�0Yq\qFq
dS)N)i l��l
ll����l
Frvi����)
rrrUrzr�
isinstancer�r{r�rf�
OverflowError)rFZlarge_sizesr}rr��lengthrrr�test_digest_length_overflow*s

z+HashLibTestCase.test_digest_length_overflowcCsr|jD]f}|dd�}|�|jt�|j|jvr@|�|j|j�n|�|j|j�|�|jtj	|jdd�j�qdS)NFrv)
rrr�rU�strr_�assertInr�r�rrLr�rrr�test_name_attribute:s

�z#HashLibTestCase.test_name_attributec
Cs,d}d}d}d}|jD�]}|dd�}|�|�|�|�|�|�|�|�|j|jvr`d}nd}|dd�}|�||||�|�|j|�|j|��|||||dd�}	|�|j|�|	j|��||||dd�}
|
j|�}|
��}|�|�|�|j|�|j|��|�|
j|�|�qdS)	Ns�aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbs~ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccsddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddFrv)rwr)rrrarUrzr�r��copy)
rFZaasZbeesZceesZdeesr}Zm1riZm2Zm3Zm4Z	m4_digestZm4_copyrrr�test_large_updateGs0







z!HashLibTestCase.test_large_updateFcKs�t|�d}|��}|j|}|�t|�d�|D]�}||fi|��}	|sR|	��n|	�|�}
|�|
|d|||
t|�|f�|s�|	��n|	�|�}
t�|�}|�|
|�|s2|�t|�|	j	�q2dS)N�zrHash algorithm %s constructed using %s returned hexdigest %r for %d byte input data that should have hashed to %r.)
�lenr`rSZassertGreaterEqualr{r�r�r*r+�digest_size)rFrUrMr{ZshakerNr�rk�hash_object_constructorrZcomputedr�rrr�checkgs(

���
zHashLibTestCase.checkcCs&|j|}|D]}|�t|d�qdS)NZspam)rSr�r�)rFZalgorithm_namerkr�rrr�check_no_unicode|s
z HashLibTestCase.check_no_unicodecCs@|�d�|�d�|�d�|�d�|�d�|�d�dS)Nrr
r3rr5r	�r�rWrrr�test_no_unicode�s




zHashLibTestCase.test_no_unicodecCs|�d�|�d�dS)Nr6r7r�rWrrr�test_no_unicode_blake2�s
z&HashLibTestCase.test_no_unicode_blake2cCs@|�d�|�d�|�d�|�d�|�d�|�d�dS)Nr8r9r:r;r<r=r�rWrrr�test_no_unicode_sha3�s




z$HashLibTestCase.test_no_unicode_sha3rNcCs�|j|}|D]�}|dd�}|�|j|�|�|j|�|rn|�t|�|��|�|�t|�|��d|�n,|�t|���|�|�t|���d|�|�|j|�|�|�	d�dt
|��qdS)NFrvr��_r)rSr��
block_sizer�r�r�r{rUr�r)�repr)rFrUr�r�Z
digest_lengthrkr�rrrr�check_blocksize_name�s 

��z$HashLibTestCase.check_blocksize_namecCsX|�ddd�|�ddd�|�ddd�|�ddd	�|�d
dd�|�d
dd�dS)Nr�@rwr
�r3�r� r5��0r	�r�rWrrr�test_blocksize_name�sz#HashLibTestCase.test_blocksize_namecCs\|�ddd�|�ddd�|�ddd	�|�d
dd�|�d
ddd�|�dddd�dS)Nr8�r�r9�r�r:�hr�r;�Hr�r<�rr=r�rWrrr�test_blocksize_name_sha3�sz(HashLibTestCase.test_blocksize_name_sha3cCsl|j|}|D]X}|�}tdur,t|t�r,q|�||d�|�|j|�|�|j|�|�|j|�qdS)Ni@)rSrr�r�Z_capacity_bitsZ
_rate_bitsZ_suffix)rFrUZcapacityZrate�suffixrkr�rrrr�
check_sha3�s
zHashLibTestCase.check_sha3cCsd|�dddd�|�dddd�|�dd	d
d�|�ddd
d�|�dddd�|�dddd�dS)Nr8i�i��r9�i@r:ii@r;�i@r<�i@�r=)r�rWrrr�test_extra_sha3�szHashLibTestCase.test_extra_sha3cCs |�ddd�|�ddd�dS)Nr6r�r�r7r�r�rWrrr�test_blocksize_name_blake2�sz*HashLibTestCase.test_blocksize_name_blake2cCs|jddddd�dS)Nrr�Z d41d8cd98f00b204e9800998ecf8427eFrv�r�rWrrr�test_case_md5_0�s�zHashLibTestCase.test_case_md5_0cCs|jddddd�dS)Nr�abcZ 900150983cd24fb0d6963f7d28e17f72Frvr�rWrrr�test_case_md5_1�s�zHashLibTestCase.test_case_md5_1cCs|jddddd�dS)Nrs>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789Z d174ab98d277d9f5a5611c2c9f419d9fFrvr�rWrrr�test_case_md5_2�s�zHashLibTestCase.test_case_md5_2�z!test cannot run on 32-bit systemsr�)�sizeZmemuse�dry_runcCs|�dd|d�dS)Nr�AZ c9af2dff37468ce5dfee8f2cfc0a9c6dr��rFr�rrr�test_case_md5_huge�sz"HashLibTestCase.test_case_md5_hugecCs|�dd|d�dS)Nrr�Z 28138d306ff1b8281f1a9067e1a1a2b3r�r�rrr�test_case_md5_uintmax�sz%HashLibTestCase.test_case_md5_uintmaxcCs4t��}|�d�|�dd�|�|��d�dS)z,Regression test for gh-98517 CVE-2022-37454.����Z880762e8ce6700f114fec0f621fd97c4b9c00147fa052215294cceeedN)rr8rar�r{)rFr�rrrr�test_sha3_update_overflow�s
z)HashLibTestCase.test_sha3_update_overflowcCs|�ddd�dS)Nr
r�Z(da39a3ee5e6b4b0d3255bfef95601890afd80709r�rWrrr�test_case_sha1_0s�z HashLibTestCase.test_case_sha1_0cCs|�ddd�dS)Nr
r�Z(a9993e364706816aba3e25717850c26c9cd0d89dr�rWrrr�test_case_sha1_1s�z HashLibTestCase.test_case_sha1_1cCs|�ddd�dS)Nr
�8abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopqZ(84983e441c3bd26ebaae4aa1f95129e5e54670f1r�rWrrr�test_case_sha1_2	s�z HashLibTestCase.test_case_sha1_2cCs|�dddd�dS)Nr
�a�@BZ(34aa973cd4c4daa4f61eeb2bdbad27316534016fr�rWrrr�test_case_sha1_3s�z HashLibTestCase.test_case_sha1_3cCs|�ddd�dS)Nr3r�Z8d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42fr�rWrrr�test_case_sha224_0s�z"HashLibTestCase.test_case_sha224_0cCs|�ddd�dS)Nr3r�Z823097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7r�rWrrr�test_case_sha224_1s�z"HashLibTestCase.test_case_sha224_1cCs|�ddd�dS)Nr3r�Z875388b16512776cc5dba5da1fd890150b0c6455cb4f58b1952522525r�rWrrr�test_case_sha224_2s�z"HashLibTestCase.test_case_sha224_2cCs|�dddd�dS)Nr3r�r�Z820794655980c91d8bbb4c1ea97618a4bf03f42581948b2ee4ee7ad67r�rWrrr�test_case_sha224_3$s�z"HashLibTestCase.test_case_sha224_3cCs|�ddd�dS)Nrr�Z@e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855r�rWrrr�test_case_sha256_0)s�z"HashLibTestCase.test_case_sha256_0cCs|�ddd�dS)Nrr�Z@ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015adr�rWrrr�test_case_sha256_1-s�z"HashLibTestCase.test_case_sha256_1cCs|�ddd�dS)Nrr�Z@248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1r�rWrrr�test_case_sha256_21s�z"HashLibTestCase.test_case_sha256_2cCs|�dddd�dS)Nrr�r�Z@cdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0r�rWrrr�test_case_sha256_36s�z"HashLibTestCase.test_case_sha256_3cCs|�ddd�dS)Nr5r�Z`38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95br�rWrrr�test_case_sha384_0;s�z"HashLibTestCase.test_case_sha384_0cCs|�ddd�dS)Nr5r�Z`cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7r�rWrrr�test_case_sha384_1@s�z"HashLibTestCase.test_case_sha384_1cCs|�ddd�dS)Nr5�pabcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstuZ`09330c33f71147e83d192fc782cd1b4753111b173b3b05d22fa08086e3b0f712fcc7c71a557e2db966c3e9fa91746039r�rWrrr�test_case_sha384_2Es�z"HashLibTestCase.test_case_sha384_2cCs|�dddd�dS)Nr5r�r�Z`9d0e1809716474cb086e834e310a4a1ced149e9c00f248527972cec5704c2a5b07b8b3dc38ecc4ebae97ddd87f3d8985r�rWrrr�test_case_sha384_3Ls�z"HashLibTestCase.test_case_sha384_3cCs|�ddd�dS)Nr	r�Z�cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3er�rWrrr�test_case_sha512_0Rs�z"HashLibTestCase.test_case_sha512_0cCs|�ddd�dS)Nr	r�Z�ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49fr�rWrrr�test_case_sha512_1Ws�z"HashLibTestCase.test_case_sha512_1cCs|�ddd�dS)Nr	r�Z�8e959b75dae313da8cf4f72814fc143f8f7779c6eb9f7fa17299aeadb6889018501d289e4900f7e4331b99dec4b5433ac7d329eeb6dd26545e96e55b874be909r�rWrrr�test_case_sha512_2\s�z"HashLibTestCase.test_case_sha512_2cCs|�dddd�dS)Nr	r�r�Z�e718483d0ce769644e2e42c7bc15b4638e1f98b13b2044285632a803afa973ebde0ff244877ea60a4cb0432ce577c31beb009c5c2c49aa2e4eadb217ad8cc09br�rWrrr�test_case_sha512_3cs�z"HashLibTestCase.test_case_sha512_3cCs"|�|j|�t|d�D]}|d|d�qd|d}|jt||d�|�|j|�t|d�D]}|d|d�qdd|d}	|jt||	d�|�|j|�td|d�D]}||d�q�|jt|dd�|jt|dd�|jt||dd�|�|j|�t|d�D]}|d|d��qd|d}
|jt||
d�|�|���|d	d����tdd
�D]}||d��qf|jt|dd�|jt|d
d�tdd
�D]}||d��q�|jt|dd�|jt|dd�|jt|d
d�tdd
�D]}||d
��q�|jt|dd
�|jt|d
d
�td|d�D]}||d��q.|jt|dd�|jt||dd�|dd�|dd�|jt|dd�|jt	|dd�|dd�||d�|jt|dd�|jt	||dd�|jt
|d	d�|jt
|d	d�|�t
|d�|d	d	d	d	dddd
ddddd�dS)Nr�r���salt)�person�r����r��keyr�r�)�fanout)�depth)�
node_depth)�
inner_size)�	leaf_sizer�l)�node_offset)rM)�stringr�r��T)r�r�r�r�r�r�rrr�r��	last_node)r�Z	SALT_SIZEryr�rfZPERSON_SIZEZMAX_DIGEST_SIZEZMAX_KEY_SIZEr{r�r�)rFrVZ	salt_sizeZperson_sizeZkey_sizer�Z
max_offsetr!r�r�r�rrr�check_blake2hs��



�zHashLibTestCase.check_blake2cCsxdd�}|dd�}|D]X}|D]N}|||�}|||�}	|||d�}
|�|
���|||	|d�}|�|���qq|��S)NcSsTd}d||@}d}t|�}t|�D]*}|||@}||}}|d?d@||<q$|S)Nr�l�KZ=r���)�	bytearrayry)r��seed�maskr|rt�outr!�trrr�selftest_seq�s
z4HashLibTestCase.blake2_rfc7693.<locals>.selftest_seqr�r�)r�r�)rar�r{)rFrVZmd_lenZin_lenrZouterZoutlenZinlenZindatar�ZunkeyedZkeyedrrr�blake2_rfc7693�s



zHashLibTestCase.blake2_rfc7693cCsB|�tjddddd�gd�}gd�}|�|�tj||�d�dS)Nrwr�l����)r�r�r�r�)rr�r��rr�Z@c23a7800d98123bd10f506c61e29da5603d763b8bbad2e737f5e765a7bccd475)rrr6r�r)rFZ
b2b_md_lenZ
b2b_in_lenrrr�test_blake2b�s�zHashLibTestCase.test_blake2bcCs|�ddd�dS)Nr6r�Z�786a02f742015903c6c6fd852552d272912f4740e15847618a86e217f71f5419d25e1031afee585313896444934eb04b903a685b1448b755d56f701afe9be2cer�rWrrr�test_case_blake2b_0�s�z#HashLibTestCase.test_case_blake2b_0cCs|�ddd�dS)Nr6r�Z�ba80a53f981c4d0d6a2797b69f12f6e94c212f14685ac4b74b12bb6fdbffa2d17d87c5392aab792dc252d5de4533cc9518d38aa8dbf1925ab92386edd4009923r�rWrrr�test_case_blake2b_1�s�z#HashLibTestCase.test_case_blake2b_1cCs*|jddddddddd	d
ddd
dd�dS)Nr6�fooZ 920568b0c5873b2f0ab67bedb6cf1b2brw�bar�baz�bingr�r�rr��rT�r�r�r�r�r�r�rrr�r�rr�rWrrr� test_case_blake2b_all_parameters�s�z0HashLibTestCase.test_case_blake2b_all_parameterscCs4td�D]&\}}}t�|�}|jd|||d�qdS)Nr6r��r0r*r+r��rF�msgr��mdrrr�test_blake2b_vectors�s
z$HashLibTestCase.test_blake2b_vectorscCsB|�tjddddd�gd�}gd�}|�|�tj||�d�dS)N�r�l���)rwr�r�r�)rr�r��Arr�Z@6a411f08ce25adcdfb02aba641451cec53c598b24f4fc787fbdc88797f4c1dfe)rrr7r�r)rFZ
b2s_md_lenZ
b2s_in_lenrrr�test_blake2s�s�zHashLibTestCase.test_blake2scCs|�ddd�dS)Nr7r�Z@69217a3079908094e11121d042354a7c1f55b6482ca1a51e1b250dfd1ed0eef9r�rWrrr�test_case_blake2s_0s�z#HashLibTestCase.test_case_blake2s_0cCs|�ddd�dS)Nr7r�Z@508c5e8c327c14e2e1a72ba34eeb452f37458b209ed63a294d999b4c86675982r�rWrrr�test_case_blake2s_1s�z#HashLibTestCase.test_case_blake2s_1cCs*|jddddddddd	d
ddd
dd�dS)Nr7rZ bf2a8f7fe3c555012a6f8046e646bc75rwrrrr�r�rr�rrTrr�rWrrr� test_case_blake2s_all_parameters
s�z0HashLibTestCase.test_case_blake2s_all_parameterscCs4td�D]&\}}}t�|�}|jd|||d�qdS)Nr7r�rrrrr�test_blake2s_vectorss
z$HashLibTestCase.test_blake2s_vectorscCs|�ddd�dS)Nr8r�Z86b4e03423667dbb73b6e15454f0eb1abd4597f9a1b078e3f5b5a6bc7r�rWrrr�test_case_sha3_224_0%s�z$HashLibTestCase.test_case_sha3_224_0cCs$td�D]\}}|�d||�qdS)Nr8�r0r��rFrrrrr�test_case_sha3_224_vector*sz)HashLibTestCase.test_case_sha3_224_vectorcCs|�ddd�dS)Nr9r�Z@a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434ar�rWrrr�test_case_sha3_256_0/s�z$HashLibTestCase.test_case_sha3_256_0cCs$td�D]\}}|�d||�qdS)Nr9r(r)rrr�test_case_sha3_256_vector4sz)HashLibTestCase.test_case_sha3_256_vectorcCs|�ddd�dS)Nr:r�Z`0c63a75b845e4f7d01107d852e4c2485c51a50aaaa94fc61995e71bbee983a2ac3713831264adb47fb6bd1e058d5f004r�rWrrr�test_case_sha3_384_09s�z$HashLibTestCase.test_case_sha3_384_0cCs$td�D]\}}|�d||�qdS)Nr:r(r)rrr�test_case_sha3_384_vector?sz)HashLibTestCase.test_case_sha3_384_vectorcCs|�ddd�dS)Nr;r�Z�a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26r�rWrrr�test_case_sha3_512_0Ds�z$HashLibTestCase.test_case_sha3_512_0cCs$td�D]\}}|�d||�qdS)Nr;r(r)rrr�test_case_sha3_512_vectorJsz)HashLibTestCase.test_case_sha3_512_vectorcCs$|�dddd�|�dddd�dS)Nr<r�Z@7f9c2ba4e88f827d616045507605853ed73b8093f6efbc88eb1a6eacfa66ef26TZ7f9cr�rWrrr�test_case_shake_128_0Os
�z%HashLibTestCase.test_case_shake_128_0cCs&td�D]\}}|�d||d�qdS)Nr<Tr(r)rrr�test_case_shake128_vectorVsz)HashLibTestCase.test_case_shake128_vectorcCs$|�dddd�|�dddd�dS)Nr=r�Z@46b9dd2b0ba88d13233b3feb743eeb243fcd52ea62b81b82b50c27646ed5762fTZ46b9r�rWrrr�test_case_shake_256_0[s
�z%HashLibTestCase.test_case_shake_256_0cCs&td�D]\}}|�d||d�qdS)Nr=Tr(r)rrr�test_case_shake256_vectorbsz)HashLibTestCase.test_case_shake256_vectorcCs�d}|jD]J}|dd�}|�d�|�d|�|�d�|d|dd�}|�d�q
t��}|�d�|�d|�|�d�|�|��d�t�dd|d�}|�|��d�dS)NiFrv�1�#�xZ@1cfceca95989f51f658e3f3ffe7f1cd43726c9e088c13ee10b46f57cef135b94)rrrarrr�r{)rFZgil_minsizer}rrrr�test_gilgs*





��zHashLibTestCase.test_gilc	s�t���d}d}|d�t��|���}��fdd�}g}t|�D]N}t��d|}|�|d�|�|t|�d�tj||fd�}|�	|�qD|D]}|�
�q�|D]}|��q�|�|����dS)	Nr�sswineflui@
cs4d}|t��kr0���|||��||7}qdSr)r�ra)�
chunk_size�index�rMZhasherrr�hash_in_chunks�sz=HashLibTestCase.test_threaded_hashing.<locals>.hash_in_chunksrur)�targetri)rr
r{ryr�Z
assertGreaterr��	threading�Thread�append�start�join)	rFZnum_threadsZ
smallest_dataZ
expected_hashr<�threadsZ	threadnumr9�threadrr;r�test_threaded_hashing�s(�

z%HashLibTestCase.test_threaded_hashingcCs|j}|dur|�|t�dSrK)rsr��int)rFZ	fips_moderrr�test_get_fips_mode�sz"HashLibTestCase.test_get_fips_modez
need _hashlibcCsh|�td��t�Wd�n1s(0Y|�td��t�Wd�n1sZ0YdS)Nzcannot create 'HASH' instancez cannot create 'HASHXOF' instance)�assertRaisesRegexr�rrrWrrr�test_internal_types�s�$�z#HashLibTestCase.test_internal_types)F)rrN)h�__name__�
__module__�__qualname__r_rz�osrU�COMPILED_WITH_PYDEBUGrBrIrh�propertyrrrsrr�r�r�r�r�r�r�r�r�r�r�r�r�r��requires_blake2r��
requires_sha3r�r�r�r�r�r�r�r�r�r�r'�skipIfr��maxsizerrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrrr"r#r$r%r&r'r*r+r,r-r.r/r0r1r2r3r4r8rZreap_threadsrErG�
skipUnlessrrI�
__classcell__rrrlrr1es�	M

	


 


�



	O






















#r1c	@szeZdZgd�Zddddded�fdddd	ded
�fddd
d	ded�fgZe�d�dfe�d�dfe�d�dfe�d�dfe�d�dfge�d�dfe�d�dfe�d�dfe�d�dfe�d�dfge�d�dfe�d�dfe�d�dfe�d�d fe�d!�dfgd"�Zd#d$�Z	e
�edud%�d&d'��Z
e
�eed(�d)�d*d+��Ze
�eed,�d-�e
je�d.d/�d0d1���Zd2d3�ZdS)4�KDFTests))�password�saltr�N)rWrXr�N)rWrX�N)spasswordPASSWORDpasswords$saltSALTsaltSALTsaltSALTsaltSALTsaltrYr�)s	passwordssaltrYrwr�rwr�Z�77d6576238657b203b19ca42c18a0497f16b4844e3074ae8dfdffa3fede21442fcd0069ded0948f8326a753a0fc81f17e8d3e0fb2e0d3628cf35e20c38d18906rWsNaClr�r Z�fdbabe1c9d3472007856e7190d01e9fe7c6ad7cbc8237830e77376634b3731622eaf30d92e22a3886ff109279d9830dac727afb94a83ee6d8360cbdfa2cc0640s
pleaseletmeinsSodiumChloridei@Z�7023bdcb3afd7348461c06cd81fd38ebfda8fbba904f8e3ea9b543f6545da1f2d5432955613f0fcf62d49705242a9af9e61e85dc0d651e40dfcf017b45575887Z(0c60c80f961f0e71f3a9b524af6012062fe037a6NZ(ea6c014dc72d6f8ccd1ed92ace1d41f0d8de8957Z(4b007901b765489abead49d926f721d065a429c1Z23d2eec4fe41c849b80c8d83662c0e44a8b291a964cf2f07038�Z 56fa6aa75548099dcc37d7f03425e0c3Z@120fb6cffcf8b32c43e7225256c4f837a86548c92ccc35480805987cb70be17bZ@ae4d0c95af6b46d32d0adff928f06dd02a303f8ef3c251dfd6e2d85a95474c43Z@c5e478d59288c841aa530db6845c4c8d962893a001ce4e11a4963873aa98134aZP348c89dbcbd32b2f32d814b8116e84cf2b17347ebc1800181c4e2a1fb8dd53e1c635518c7dac47e9�(Z 89b69d0516f829893c696226650a8687Z�867f70cf1ade02cff3752599a3a53dc4af34c7a669815ae5d513554e1c8cf252c02d470a285a0501bad999bfe943c08f050235d7d68b1da55e63f73b60a57fceZ�e1d9c16aa681708a45f5c7c4e215ceb66e011a2e9f0040713f18aefdb866d53cf76cab2868a39b9f7840edce4fef5a82be67335c77a6068e04112754f27ccf4eZ�d197b1b33db0143e018b12f3d1d1479e6cdebdcc97c5c0f87f6902e072f457b5143f30602641b3d55cd335988cb36b84376060ecd532e039b742a239434af2d5Z�8c0511f4c6e597c6ac6315d8f0362e225f3c501495ba23b868c005174dc4ee71115b59f9e60cd9532fa33e0f75aefe30225c583a186cd82bd4daea9724a3d3b8r�Z 9d9e9c4cd21fe4be24d5b8244c759665)r
rr	cCs�|j��D]�\}}||vrq
t|j�D]�\}}|\}}}	}
||\}}|rN|}
|||||	|
�}
|�|
|||||	|
f�||t|�t|�|	|
�}
|�|
|�||t|�t|�|	|
�}
|�|
|�|
dur&|||||	�}
|�|
|||||	f�q&q
|�td��|dddd�Wd�n1�s 0Yd|v�r�|�	t
|dddd�|�	t
|ddd	d�|�	t|dddd
�|�	t|dddd�|�	t|ddddd
�|�	t|ddddd�|dddddd
�}
|�|
|jdd
d
�dS)Nz.*unsupported.*�unknownspassrXr�r
ssha1�passr�rr�rW)r,�passwordr�Z
iterations�dklen)�pbkdf2_resultsrc�	enumerate�pbkdf2_test_vectorsr��
memoryviewr	rHrfr�r�)rFZpbkdf2Z	supportedZdigest_name�resultsr!Zvectorr^r��roundsr_�expectedZoverwrite_dklenrrrr�_test_pbkdf2_hmac�sd�

�

�
�.
�������zKDFTests._test_pbkdf2_hmacztest requires builtin_hashlibcCs|�tjt�dSrK)rg�builtin_hashlib�pbkdf2_hmacrCrWrrr�test_pbkdf2_hmac_py$szKDFTests.test_pbkdf2_hmac_pyriz   test requires OpenSSL > 1.0cCs|�tjt�dSrK)rg�openssl_hashlibrirrWrrr�test_pbkdf2_hmac_c(szKDFTests.test_pbkdf2_hmac_c�scryptz   test requires OpenSSL > 1.1zscrypt is blocked in FIPS mode)�reasonc

Cs|jD]0\}}}}}}tj|||||d�}|�||�qtjdddddd�|�t��$tjdddddd�Wd�n1s�0Y|�t��$tjdddddd�Wd�n1s�0Y|�t��t�d�Wd�n1s�0Y|�t��t�dd�Wd�n1�s*0Y|�t��$tjdddddd	�Wd�n1�sj0Yd
D]L}|�tttf��$tjdd|ddd�Wd�n1�s�0Y�qxdD]L}|�tttf��$tjddd|dd�Wd�n1�s
0Y�q�dD]L}|�tttf��$tjdddd|d�Wd�n1�s\0Y�qdD]N}|�tttf��&tjddddd|d
�Wd�n1�s�0Y�qndD]N}	|�tttf��&tjddddd|	d�Wd�n1�s0Y�q�dS)N)r��nr �prWrXr�r r�r^r�r�)r�rr�N)r�rN)r�N)r�ror rp�maxmem)r�ror rpr_)�scrypt_test_vectorsrrmr�r�r�rfr�)
rFr^r�ror rprf�resultrqr_rrr�test_scrypt-sB22(,4888�*�zKDFTests.test_scryptcCs |�dtj�|�dtj�dS)NZ
blake2b512zsha3-512)r�rr�rWrrr�test_normalized_nameUszKDFTests.test_normalized_name)rJrKrLrbrrrr*r+r`rgr'rRrhrjrTrerkrlrrrtrurrrrrV�sn�	��
�����
������&1
�
�%rV�__main__)4rxZbinasciirrr?rorMr�Z	sysconfigr>r'rDr�rZtest.supportrrrZhttp.clientrrerNZdefault_builtin_hashesZget_config_varrCr
r`r)rkrhrrrrrr��	frozensetrJrTrPr]Zcheck_sanitizerrbrQr"r$r0ZTestCaser1rVrJ�mainrrrr�<module>	sr

�

	[!


Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists