Your IP : 216.73.216.85


Current Path : /opt/alt/python35/lib64/python3.5/test/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/test/__pycache__/test_hashlib.cpython-35.opt-1.pyc



��Yf�U�@s<ddlZddlZddlZddlZddlZyddlZWnek
rfdZYnXddlZddlZddl	m
Z
ddlmZm
Z
mZeed�Zedddg�Zedddg�Zd	d
�ZGdd�dej�ZGd
d�dej�Zedkr8ej�dS)�N)�support)�_4G�
bigmemtest�import_fresh_module�gettotalrefcount�hashlibZfresh�_hashlibZblockedcCsCd}d}x0|D](}|||d?d@||d@7}qW|S)NZ0123456789abcdef����)�s�h�r�irr�6/opt/alt/python35/lib64/python3.5/test/test_hashlib.py�hexstrs

&rcs�eZdZdmZejd
kp$eZdd�Z�fdd�Z	e
dd��Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d*d+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zejeje d5kd6�e!d7e d5d8d9d:d;�d<d=���Z"ejeje d9kd6�e!d7e d9d8d9d:d;�d>d?���Z#d@dA�Z$dBdC�Z%dDdE�Z&dFdG�Z'dHdI�Z(dJdK�Z)dLdM�Z*dNdO�Z+dPdQ�Z,dRdS�Z-dTdU�Z.dVdW�Z/dXdY�Z0dZd[�Z1d\d]�Z2d^d_�Z3d`da�Z4dbdc�Z5ddde�Z6dfdg�Z7dhdi�Z8ej9e:dj�e;j<dkdl���Z=�S)n�HashLibTestCase�md5�MD5�sha1�SHA1�sha224�SHA224�sha256�SHA256�sha384�SHA384�sha512�SHA512�posixcCsdytd|�Wn?tk
rS}z|jrAtjd|�WYdd}~XnXt�j|�S)z@Import a module and return a reference to it or None on failure.zimport z%Did a C extension fail to compile? %sN)�exec�ImportError�_warn_on_extension_import�warnings�warn�locals�get)�selfZmodule_name�errorrrr�_conditional_import_module.s	$z*HashLibTestCase._conditional_import_modulecs�t�}x$�jD]}|j|j��qWi�_x|D]}t��j|<q@WxR�jj�D]A\}}|jtt|��d|dd�}|j|�qjW�jd�}|r9�j	t
|d���j	t
|d��xF�jj�D]5\}}t|d|d�}|r|j|�qW�fdd�}	�jd	�}
|
rj|	d
��jd�}|r�|	d��jd
�}|r�|	d�|	d��jd�}
|
r�|	d�|	d�tt��j
||�dS)NcSs)|dkrtj|�Stj||�S)N)r�new)�dataZ_algrrr�_test_algorithm_via_hashlib_newCs
zAHashLibTestCase.__init__.<locals>._test_algorithm_via_hashlib_newrZopenssl_md5Zopenssl_sha1Zopenssl_cs-ttd�|�}�j|j|�dS)N�__get_builtin_constructor)�getattrr�constructors_to_test�add)�name�constructor)r(rr�add_builtin_constructorTsz9HashLibTestCase.__init__.<locals>.add_builtin_constructor�_md5r�_sha1r�_sha256rr�_sha512rr)�set�supported_hash_namesr1�lowerr0�itemsr/rr*�
assertTrue�hasattr�superr�__init__)r(�args�kwargsZ
algorithms�	algorithm�constructorsr-rr3r4r5r6r7r8)�	__class__)r(rr@7sD		






zHashLibTestCase.__init__cCs|jj�}tjj|�S)N)r0�values�	itertools�chain�
from_iterable)r(rDrrr�hash_constructorsisz!HashLibTestCase.hash_constructorscCsFtjdtd��}x'|jD]}||�}|j�q"WdS)N�b�
)�array�rangerJ�	hexdigest)r(�a�cons�crrr�test_hash_arraynszHashLibTestCase.test_hash_arraycCs-|jtjtdd�|jD���dS)Ncss!|]}|j�r|VqdS)N)�islower)�.0Z_algorrr�	<genexpr>vsz=HashLibTestCase.test_algorithms_guaranteed.<locals>.<genexpr>)�assertEqualr�algorithms_guaranteedr9r:)r(rrr�test_algorithms_guaranteedtsz*HashLibTestCase.test_algorithms_guaranteedcCs&|jttj�jtj��dS)N)r=r9rrX�issubsetZalgorithms_available)r(rrr�test_algorithms_availableysz)HashLibTestCase.test_algorithms_availablecCs0|jttjd�|jttjd�dS)Nzspam spam spam spam spam�)�assertRaises�
ValueErrorrr+�	TypeError)r(rrr�test_unknown_hash}sz!HashLibTestCase.test_unknown_hashcCsttd�}ttd�}|jt|d�yddl}Wntk
rUYnXdtjd<|j�z|jt|d�Wddt	�kr�|tjd<n
tjd=X|jt
|d�|d�}|j||j�|j
t|�ddg�dS)	Nr.Z__builtin_constructor_cache�testrr5r�r)r/rr]r^r5r"�sys�modules�clearr&r_ZassertIsrrW�sorted)r(Zget_builtin_constructorZbuiltin_constructor_cacher5r3rrr�test_get_builtin_constructor�s(		


z,HashLibTestCase.test_get_builtin_constructorcCsYxR|jD]G}|�}|j|j�t�|jt|j��|j��q
WdS)N)rJ�assertIsInstance�digest�bytesrWrrO)r(rQrrrr�test_hexdigest�s	zHashLibTestCase.test_hexdigestcCslxe|jD]Z}|�}|j|jt�|j|j|j�|j|jtj|j�j�q
WdS)N)	rJrhr2�str�assertInr:rWrr+)r(rQrrrr�test_name_attribute�s
	z#HashLibTestCase.test_name_attributecCsZdd}dd}dd}dd}x+|jD] }|�}|j|�|j|�|j|�|j|�|�}|j||||�|j|j�|j��|||||�}|j|j�|j��||||�}	|	j�}
|	j�}|j|�|j|j�|j��|j|	j�|
�q2WdS)	N�a��b��c�~�di)rJ�updaterWri�copy)r(ZaasZbeesZceesZdeesrQ�m1�m2Zm3Zm4Z	m4_digestZm4_copyrrr�test_large_update�s*



	



	
z!HashLibTestCase.test_large_updatec	
Cs�|j�}|j|}|jt|�d�x�|D]�}||�}|j�}|j||d|||t|�|f�|j�}tj|�}|j||�|jt|�|j	�q6WdS)N�zrHash algorithm %s constructed using %s returned hexdigest %r for %d byte input data that should have hashed to %r.)
r;r0ZassertGreaterEqual�lenrOrWrirj�fromhex�digest_size)	r(r2r,rOrD�hash_object_constructor�mZcomputedrirrr�check�s

zHashLibTestCase.checkcCs5|j|}x!|D]}|jt|d�qWdS)NZspam)r0r]r_)r(Zalgorithm_namerDrrrr�check_no_unicode�s

z HashLibTestCase.check_no_unicodecCsR|jd�|jd�|jd�|jd�|jd�|jd�dS)Nrrrrrr)r�)r(rrr�test_no_unicode�s




zHashLibTestCase.test_no_unicodercCs�|j|}x�|D]�}|�}|j|j|�|j|j|�|jt|j��|�|j|j|�|j|jd�dt	|��qWdS)N�_r)
r0rW�
block_sizer~r|rir2rm�split�repr)r(r2r�r~rDrr�rrr�check_blocksize_name�s

	z$HashLibTestCase.check_blocksize_namecCsv|jddd�|jddd�|jddd�|jddd	�|jd
dd�|jd
dd�dS)Nr�@�r�r�r� rrp�0r)r�)r(rrr�test_blocksize_name�sz#HashLibTestCase.test_blocksize_namecCs|jddd�dS)Nr�Z d41d8cd98f00b204e9800998ecf8427e)r�)r(rrr�test_case_md5_0�szHashLibTestCase.test_case_md5_0cCs|jddd�dS)NrsabcZ 900150983cd24fb0d6963f7d28e17f72)r�)r(rrr�test_case_md5_1�szHashLibTestCase.test_case_md5_1cCs|jddd�dS)Nrs>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789Z d174ab98d277d9f5a5611c2c9f419d9f)r�)r(rrr�test_case_md5_2�s	zHashLibTestCase.test_case_md5_2�z!test cannot run on 32-bit systems�sizeZmemuser\Zdry_runFcCs|jdd|d�dS)Nr�AZ c9af2dff37468ce5dfee8f2cfc0a9c6d)r�)r(r�rrr�test_case_md5_hugesz"HashLibTestCase.test_case_md5_hugecCs|jdd|d�dS)Nrr�Z 28138d306ff1b8281f1a9067e1a1a2b3)r�)r(r�rrr�test_case_md5_uintmaxsz%HashLibTestCase.test_case_md5_uintmaxcCs|jddd�dS)Nrr�Z(da39a3ee5e6b4b0d3255bfef95601890afd80709)r�)r(rrr�test_case_sha1_0sz HashLibTestCase.test_case_sha1_0cCs|jddd�dS)NrsabcZ(a9993e364706816aba3e25717850c26c9cd0d89d)r�)r(rrr�test_case_sha1_1sz HashLibTestCase.test_case_sha1_1cCs|jddd�dS)Nrs8abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopqZ(84983e441c3bd26ebaae4aa1f95129e5e54670f1)r�)r(rrr�test_case_sha1_2s	z HashLibTestCase.test_case_sha1_2cCs|jdddd�dS)Nrroi@BZ(34aa973cd4c4daa4f61eeb2bdbad27316534016f)r�)r(rrr�test_case_sha1_3sz HashLibTestCase.test_case_sha1_3cCs|jddd�dS)Nrr�Z8d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f)r�)r(rrr�test_case_sha224_0'sz"HashLibTestCase.test_case_sha224_0cCs|jddd�dS)NrsabcZ823097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7)r�)r(rrr�test_case_sha224_1+sz"HashLibTestCase.test_case_sha224_1cCs|jddd�dS)Nrs8abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopqZ875388b16512776cc5dba5da1fd890150b0c6455cb4f58b1952522525)r�)r(rrr�test_case_sha224_2/s	z"HashLibTestCase.test_case_sha224_2cCs|jdddd�dS)Nrroi@BZ820794655980c91d8bbb4c1ea97618a4bf03f42581948b2ee4ee7ad67)r�)r(rrr�test_case_sha224_34sz"HashLibTestCase.test_case_sha224_3cCs|jddd�dS)Nrr�Z@e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855)r�)r(rrr�test_case_sha256_09sz"HashLibTestCase.test_case_sha256_0cCs|jddd�dS)NrsabcZ@ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad)r�)r(rrr�test_case_sha256_1=sz"HashLibTestCase.test_case_sha256_1cCs|jddd�dS)Nrs8abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopqZ@248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1)r�)r(rrr�test_case_sha256_2As	z"HashLibTestCase.test_case_sha256_2cCs|jdddd�dS)Nrroi@BZ@cdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0)r�)r(rrr�test_case_sha256_3Fsz"HashLibTestCase.test_case_sha256_3cCs|jdddd�dS)Nrr�Z@38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1daZ 274edebfe76f65fbd51ad2f14898b95b)r�)r(rrr�test_case_sha384_0Ksz"HashLibTestCase.test_case_sha384_0cCs|jdddd�dS)NrsabcZ@cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bedZ 8086072ba1e7cc2358baeca134c825a7)r�)r(rrr�test_case_sha384_1Psz"HashLibTestCase.test_case_sha384_1cCs|jddddd�dS)Nrs8abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmns8hijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstuZ@09330c33f71147e83d192fc782cd1b4753111b173b3b05d22fa08086e3b0f712Z fcc7c71a557e2db966c3e9fa91746039)r�)r(rrr�test_case_sha384_2Us
	z"HashLibTestCase.test_case_sha384_2cCs|jddddd�dS)Nrroi@BZ@9d0e1809716474cb086e834e310a4a1ced149e9c00f248527972cec5704c2a5bZ 07b8b3dc38ecc4ebae97ddd87f3d8985)r�)r(rrr�test_case_sha384_3\sz"HashLibTestCase.test_case_sha384_3cCs|jdddd�dS)Nrr�Z@cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ceZ@47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e)r�)r(rrr�test_case_sha512_0bsz"HashLibTestCase.test_case_sha512_0cCs|jdddd�dS)NrsabcZ@ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39aZ@2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f)r�)r(rrr�test_case_sha512_1gsz"HashLibTestCase.test_case_sha512_1cCs|jddddd�dS)Nrs8abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmns8hijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstuZ@8e959b75dae313da8cf4f72814fc143f8f7779c6eb9f7fa17299aeadb6889018Z@501d289e4900f7e4331b99dec4b5433ac7d329eeb6dd26545e96e55b874be909)r�)r(rrr�test_case_sha512_2ls
	z"HashLibTestCase.test_case_sha512_2cCs|jddddd�dS)Nrroi@BZ@e718483d0ce769644e2e42c7bc15b4638e1f98b13b2044285632a803afa973ebZ@de0ff244877ea60a4cb0432ce577c31beb009c5c2c49aa2e4eadb217ad8cc09b)r�)r(rrr�test_case_sha512_3ssz"HashLibTestCase.test_case_sha512_3cCs�d}xb|jD]W}|�}|jd�|jd|�|jd�|d|�}|jd�qWtj�}|jd�|jd|�|jd�|j|j�d�tjd|�}|j|j�d�dS)Ni�1�#�xZ cb1e1a2cbc80be75e19935d621fb9b21Z cfb767f225d58469c5de3632a8803958)rJrvrrrWrO)r(Zgil_minsizerQr�rrr�test_gilxs	



zHashLibTestCase.test_gilz!Threading required for this test.c	stj��d}d}|d�tj�|�j�}��fdd�}g}x�t|�D]}t��d|}|j|d�|j|t|�d�tj�}|j	|�tj
d|d	||f�j�qcWx|D]}|j�q�W|j|�j��dS)
Nr�sswineflui@
csRd}x;|t��krC�j�|||��||7}q	W|j�dS)Nr)r|rvr9)�
chunk_size�event�index)r,�hasherrr�hash_in_chunks�s
z=HashLibTestCase.test_threaded_hashing.<locals>.hash_in_chunksrLr�targetrA)
rrrOrNr|Z
assertGreaterrW�	threadingZEvent�appendZThread�start�wait)	r(Znum_threadsZ
smallest_dataZ
expected_hashr�ZeventsZ	threadnumr�r�r)r,r�r�test_threaded_hashing�s$	


z%HashLibTestCase.test_threaded_hashing)rrrrrrrrrrrr)>�__name__�
__module__�__qualname__r:�osr2�COMPILED_WITH_PYDEBUGr#r*r@�propertyrJrSrYr[r`rgrkrnrzr�r�r�r�r�r�r�r��unittestZskipIfrc�maxsizerrr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��
skipUnlessr�rZreap_threadsr�rr)rErr&sd	2..	rc@s�eZdZd)d*d+d-d.gZdejd
�dfejd�dfejd�dfejd�dfejd�dfgdejd�dfejd�dfejd�dfejd�dfejd�dfgdejd�dfejd�dfejd�dfejd�dfejd �dfgiZd!d"�Zd#d$�Ze	j
eed%�d&�d'd(��Z
dS)/�KDFTests�password�saltr\Nr{��passwordPASSWORDpassword�$saltSALTsaltSALTsaltSALTsaltSALTsalt�	password�saltr�rZ(0c60c80f961f0e71f3a9b524af6012062fe037a6Z(ea6c014dc72d6f8ccd1ed92ace1d41f0d8de8957Z(4b007901b765489abead49d926f721d065a429c1Z23d2eec4fe41c849b80c8d83662c0e44a8b291a964cf2f07038�Z 56fa6aa75548099dcc37d7f03425e0c3rZ@120fb6cffcf8b32c43e7225256c4f837a86548c92ccc35480805987cb70be17bZ@ae4d0c95af6b46d32d0adff928f06dd02a303f8ef3c251dfd6e2d85a95474c43Z@c5e478d59288c841aa530db6845c4c8d962893a001ce4e11a4963873aa98134aZP348c89dbcbd32b2f32d814b8116e84cf2b17347ebc1800181c4e2a1fb8dd53e1c635518c7dac47e9�(Z 89b69d0516f829893c696226650a8687rZ�867f70cf1ade02cff3752599a3a53dc4af34c7a669815ae5d513554e1c8cf252c02d470a285a0501bad999bfe943c08f050235d7d68b1da55e63f73b60a57fceZ�e1d9c16aa681708a45f5c7c4e215ceb66e011a2e9f0040713f18aefdb866d53cf76cab2868a39b9f7840edce4fef5a82be67335c77a6068e04112754f27ccf4eZ�d197b1b33db0143e018b12f3d1d1479e6cdebdcc97c5c0f87f6902e072f457b5143f30602641b3d55cd335988cb36b84376060ecd532e039b742a239434af2d5Z�8c0511f4c6e597c6ac6315d8f0362e225f3c501495ba23b868c005174dc4ee71115b59f9e60cd9532fa33e0f75aefe30225c583a186cd82bd4daea9724a3d3b8r�Z 9d9e9c4cd21fe4be24d5b8244c759665c
Csex=|jj�D],\}}xt|j�D]\}}|\}}}}	||\}
}|rf|}	||||||	�}|j||
|||||	f�||t|�t|�||	�}||t|�t|�||	�}|j||
�|	dkr,|||||�}|j||
||||f�q,WqW|jt|dddd�|jt|dddd�|jt	|dddd�|jt	|dddd�|jt	|ddddd�|jt	|ddddd�|j
t	d	��|d
ddd�WdQRX|dddd
dddddd�}|j||jddd�dS)Nssha1spassssaltr\r�pass�saltrzunsupported hash type�unknownZ	hash_name�passwordspasswordZ
iterations�dklen���r�)�pbkdf2_resultsr<�	enumerate�pbkdf2_test_vectorsrW�
memoryview�	bytearrayr]r_r^ZassertRaisesRegex)
r(Zpbkdf2Zdigest_nameZresultsrZvectorr�r��roundsr�ZexpectedZoverwrite_dklen�outrrr�_test_pbkdf2_hmac�s:zKDFTests._test_pbkdf2_hmaccCs|jtj�dS)N)r��
py_hashlib�pbkdf2_hmac)r(rrr�test_pbkdf2_hmac_pyszKDFTests.test_pbkdf2_hmac_pyr�z   test requires OpenSSL > 1.0cCs|jtj�dS)N)r��	c_hashlibr�)r(rrr�test_pbkdf2_hmac_cszKDFTests.test_pbkdf2_hmac_c)r�r�r\N)r�r�r{N)r�r�r�Nr�)r�r�r�r�)r�r�r�r�)r�r�r�r�rjr}r�r�r�r�r�r>r�r�rrrrr��sJ	 r��__main__)rMrrGr�rcr�r"r�r$rarZtest.supportrrrr>r�r�r�rZTestCaserr�r��mainrrrr�<module>	s*
	��\