Your IP : 216.73.216.213


Current Path : /proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/
Upload File :
Current File : //proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/test_hashlib.cpython-34.pyo

�
g f�a�@sKddlZddlZddlZddlZddlZyddlZWnek
rfdZYnXddlZddlZddl	m
Z
ddlmZm
Z
mZeed�Zedddg�Zdd	�Ze�Zd
d�Zdd
�ZGdd�dej�ZGdd�dej�ZedkrGej�ndS)�N)�support)�_4G�
bigmemtest�import_fresh_module�gettotalrefcount�hashlibZfresh�_hashlibcCsyddlm}m}y(|ddgd|d|d|�}Wntk
rVdSYnX|jd	d
�\}}d|kS)Nr)�Popen�PIPEZopenssl�md5�stdin�stdout�stderrF�inputsabcsunknown cipher)�
subprocessr	r
�OSErrorZcommunicate)r	r
�pr
r�r�6/opt/alt/python34/lib64/python3.4/test/test_hashlib.py�openssl_enforces_fipss
	rcCsCd}d}x0|D](}|||d?d@||d@7}qW|S)NZ0123456789abcdef���r)�s�h�r�irrr�hexstr,s

&rcs�fdd�}|S)Ncs�dd||�S)N�usedforsecurityFr)�args�kwargs)�frr�g;szsuppress_fips.<locals>.gr)r!r"r)r!r�
suppress_fips:sr#cs eZdZdtZejd
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=dmdn�Z>ej9e?do�dpdq��Z@ej9e?do�drds��ZA�S)u�HashLibTestCaser�MD5�sha1�SHA1�sha224�SHA224�sha256�SHA256�sha384�SHA384�sha512�SHA512�posixcCsgytd|�WnBtk
rV}z"|jrDtjd|�nWYdd}~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�errorrrr�_conditional_import_moduleGs	'z*HashLibTestCase._conditional_import_modulec
szt�}x$�jD]}|j|j��qWi�_x|D]}t��j|<q@WxX�jj�D]G\}}|jttt|���d|dd�}|j|�qjW�j	d�}|rK�j
t|d���j
t|d��xR�jj�D]>\}}t|d|d�}|r|jt|��qqWn�fdd�}	tt
��j||�dS)	NcSs5|dkrttj�|�Sttj�||�S)N)r#r�new)�dataZ_algrrr�_test_algorithm_via_hashlib_new\szAHashLibTestCase.__init__.<locals>._test_algorithm_via_hashlib_newr�openssl_md5Zopenssl_sha1Zopenssl_cs-ttd�|�}�j|j|�dS)N�__get_builtin_constructor)�getattrr�constructors_to_test�add)�name�constructor)r8rr�add_builtin_constructormsz9HashLibTestCase.__init__.<locals>.add_builtin_constructor)�set�supported_hash_namesrB�lowerrA�itemsr#r@rr:�
assertTrue�hasattr�superr$�__init__)
r8rr Z
algorithms�	algorithm�constructorsr=rrDrE)�	__class__)r8rrMPs(		
zHashLibTestCase.__init__cCs|jj�}tjj|�S)N)rA�values�	itertools�chain�
from_iterable)r8rOrrr�hash_constructorstsz!HashLibTestCase.hash_constructorscCsFtjdtd��}x'|jD]}||�}|j�q"WdS)N�b�
)�array�rangerU�	hexdigest)r8�a�cons�crrr�test_hash_arrayyszHashLibTestCase.test_hash_arraycCs-|jtjtdd�|jD���dS)Ncss!|]}|j�r|VqdS)N)�islower)�.0Z_algorrr�	<genexpr>�sz=HashLibTestCase.test_algorithms_guaranteed.<locals>.<genexpr>)�assertEqualr�algorithms_guaranteedrFrG)r8rrr�test_algorithms_guaranteedsz*HashLibTestCase.test_algorithms_guaranteedcCs&|jttj�jtj��dS)N)rJrFrrc�issubsetZalgorithms_available)r8rrr�test_algorithms_available�sz)HashLibTestCase.test_algorithms_availablecCs0|jttjd�|jttjd�dS)Nzspam spam spam spam spam�)�assertRaises�
ValueErrorrr;�	TypeError)r8rrr�test_unknown_hash�sz!HashLibTestCase.test_unknown_hashcCs�ttd�}ttd�}|jt|d�yddl}Wntk
rUYnXdtjd<|j�z|jt|d�Wddt	�kr�|tjd<n
tjd=X|jt
|d�dS)Nr?Z__builtin_constructor_cache�testr�_md5r�)r@rrhrirmr2�sys�modules�clearr6rj)r8Zget_builtin_constructorZbuiltin_constructor_cachermrrr�test_get_builtin_constructor�s"		


z,HashLibTestCase.test_get_builtin_constructorcCsYxR|jD]G}|�}|j|j�t�|jt|j��|j��q
WdS)N)rU�assertIsInstance�digest�bytesrbrrZ)r8r\rrrr�test_hexdigest�s	zHashLibTestCase.test_hexdigestcCslxe|jD]Z}|�}|j|jt�|j|j|j�|j|jtj|j�j�q
WdS)N)	rUrsrC�str�assertInrGrbrr;)r8r\rrrr�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)rU�updaterbrt�copy)r8ZaasZbeesZceesZdeesr\Zm1Zm2Zm3Zm4Z	m4_digestZm4_copyrrr�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.)
rHrAZassertGreaterEqual�lenrZrbrtru�fromhex�digest_size)	r8rCr<rZrO�hash_object_constructor�mZcomputedrtrrr�check�s

zHashLibTestCase.checkcCs5|j|}x!|D]}|jt|d�qWdS)NZspam)rArhrj)r8Zalgorithm_namerOr�rrr�check_no_unicode�s

z HashLibTestCase.check_no_unicodecCsR|jd�|jd�|jd�|jd�|jd�|jd�dS)Nrr&r(r*r,r.)r�)r8rrr�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)
rArb�
block_sizer�r�rtrCrx�split�repr)r8rCr�r�rOr�r�rrr�check_blocksize_name�s

	z$HashLibTestCase.check_blocksize_namecCsv|jddd�|jddd�|jddd�|jddd	�|jd
dd�|jd
dd�dS)Nr�@�r&�r(�r*� r,r{�0r.)r�)r8rrr�test_blocksize_name�sz#HashLibTestCase.test_blocksize_namecCs|jddd�dS)Nr�Z d41d8cd98f00b204e9800998ecf8427e)r�)r8rrr�test_case_md5_0szHashLibTestCase.test_case_md5_0cCs|jddd�dS)NrsabcZ 900150983cd24fb0d6963f7d28e17f72)r�)r8rrr�test_case_md5_1szHashLibTestCase.test_case_md5_1cCs|jddd�dS)Nrs>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789Z d174ab98d277d9f5a5611c2c9f419d9f)r�)r8rrr�test_case_md5_2s	zHashLibTestCase.test_case_md5_2�z!test cannot run on 32-bit systems�sizeZmemusergZdry_runFcCs|jdd|d�dS)Nr�AZ c9af2dff37468ce5dfee8f2cfc0a9c6d)r�)r8r�rrr�test_case_md5_hugesz"HashLibTestCase.test_case_md5_hugecCs|jdd|d�dS)Nrr�Z 28138d306ff1b8281f1a9067e1a1a2b3)r�)r8r�rrr�test_case_md5_uintmaxsz%HashLibTestCase.test_case_md5_uintmaxcCs|jddd�dS)Nr&r�Z(da39a3ee5e6b4b0d3255bfef95601890afd80709)r�)r8rrr�test_case_sha1_0sz HashLibTestCase.test_case_sha1_0cCs|jddd�dS)Nr&sabcZ(a9993e364706816aba3e25717850c26c9cd0d89d)r�)r8rrr�test_case_sha1_1sz HashLibTestCase.test_case_sha1_1cCs|jddd�dS)Nr&s8abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopqZ(84983e441c3bd26ebaae4aa1f95129e5e54670f1)r�)r8rrr�test_case_sha1_2!s	z HashLibTestCase.test_case_sha1_2cCs|jdddd�dS)Nr&rzi@BZ(34aa973cd4c4daa4f61eeb2bdbad27316534016f)r�)r8rrr�test_case_sha1_3&sz HashLibTestCase.test_case_sha1_3cCs|jddd�dS)Nr(r�Z8d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42f)r�)r8rrr�test_case_sha224_0/sz"HashLibTestCase.test_case_sha224_0cCs|jddd�dS)Nr(sabcZ823097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7)r�)r8rrr�test_case_sha224_13sz"HashLibTestCase.test_case_sha224_1cCs|jddd�dS)Nr(s8abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopqZ875388b16512776cc5dba5da1fd890150b0c6455cb4f58b1952522525)r�)r8rrr�test_case_sha224_27s	z"HashLibTestCase.test_case_sha224_2cCs|jdddd�dS)Nr(rzi@BZ820794655980c91d8bbb4c1ea97618a4bf03f42581948b2ee4ee7ad67)r�)r8rrr�test_case_sha224_3<sz"HashLibTestCase.test_case_sha224_3cCs|jddd�dS)Nr*r�Z@e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855)r�)r8rrr�test_case_sha256_0Asz"HashLibTestCase.test_case_sha256_0cCs|jddd�dS)Nr*sabcZ@ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad)r�)r8rrr�test_case_sha256_1Esz"HashLibTestCase.test_case_sha256_1cCs|jddd�dS)Nr*s8abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopqZ@248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1)r�)r8rrr�test_case_sha256_2Is	z"HashLibTestCase.test_case_sha256_2cCs|jdddd�dS)Nr*rzi@BZ@cdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0)r�)r8rrr�test_case_sha256_3Nsz"HashLibTestCase.test_case_sha256_3cCs|jdddd�dS)Nr,r�Z@38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1daZ 274edebfe76f65fbd51ad2f14898b95b)r�)r8rrr�test_case_sha384_0Ssz"HashLibTestCase.test_case_sha384_0cCs|jdddd�dS)Nr,sabcZ@cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bedZ 8086072ba1e7cc2358baeca134c825a7)r�)r8rrr�test_case_sha384_1Xsz"HashLibTestCase.test_case_sha384_1cCs|jddddd�dS)Nr,s8abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmns8hijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstuZ@09330c33f71147e83d192fc782cd1b4753111b173b3b05d22fa08086e3b0f712Z fcc7c71a557e2db966c3e9fa91746039)r�)r8rrr�test_case_sha384_2]s
	z"HashLibTestCase.test_case_sha384_2cCs|jddddd�dS)Nr,rzi@BZ@9d0e1809716474cb086e834e310a4a1ced149e9c00f248527972cec5704c2a5bZ 07b8b3dc38ecc4ebae97ddd87f3d8985)r�)r8rrr�test_case_sha384_3dsz"HashLibTestCase.test_case_sha384_3cCs|jdddd�dS)Nr.r�Z@cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ceZ@47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e)r�)r8rrr�test_case_sha512_0jsz"HashLibTestCase.test_case_sha512_0cCs|jdddd�dS)Nr.sabcZ@ddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39aZ@2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49f)r�)r8rrr�test_case_sha512_1osz"HashLibTestCase.test_case_sha512_1cCs|jddddd�dS)Nr.s8abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmns8hijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstuZ@8e959b75dae313da8cf4f72814fc143f8f7779c6eb9f7fa17299aeadb6889018Z@501d289e4900f7e4331b99dec4b5433ac7d329eeb6dd26545e96e55b874be909)r�)r8rrr�test_case_sha512_2ts
	z"HashLibTestCase.test_case_sha512_2cCs|jddddd�dS)Nr.rzi@BZ@e718483d0ce769644e2e42c7bc15b4638e1f98b13b2044285632a803afa973ebZ@de0ff244877ea60a4cb0432ce577c31beb009c5c2c49aa2e4eadb217ad8cc09b)r�)r8rrr�test_case_sha512_3{sz"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)rUr�rrrbrZ)r8Zgil_minsizer\r�rrr�test_gil�s	



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�r�rF)�
chunk_size�event�index)r<�hasherrr�hash_in_chunks�s
z=HashLibTestCase.test_threaded_hashing.<locals>.hash_in_chunksrWr�targetr)
rr&rZrYr�Z
assertGreaterrb�	threadingZEvent�appendZThread�start�wait)	r8Znum_threadsZ
smallest_dataZ
expected_hashr�ZeventsZ	threadnumr�r�r)r<r�r�test_threaded_hashing�s$	


z%HashLibTestCase.test_threaded_hashingcCs�tjdd�}|jd�|j|j�d�tjddd�}|jd�|j|j�d�tjddd�}|j|j�d�tjdddd�}|j|j�d�dS)NrFsabc
� 0bee89b07a248e27c83fc3d5951213c1r)rrr��assertEqualsrZr;)r8r�rrr�test_issue9146�s

zHashLibTestCase.test_issue9146z(FIPS enforcement required for this test.cCsc|jtd��tj�}WdQX|jd�s_|jtd��tjd�}WdQXndS)Nz.*unknown cipherrmr)�assertRaisesRegexprirrr:r;)r8r�rrr�test_hashlib_fips_mode�s
z&HashLibTestCase.test_hashlib_fips_modecCs/|jd�}|r+|jtd��|j�}WdQX|jtd��|jd�}WdQX|jdd�}|jd�|j|j�d�|jddd�}|jd�|j|j�d�|jddd�}|j|j�d�|jdddd�}|j|j�d�ndS)Nrz.*unknown cipherrrFsabc
r�)r:r�rir>r;r�r�rZ)r8rr�rrr�test_hashopenssl_fips_mode�s 

z*HashLibTestCase.test_hashopenssl_fips_mode)zmd5r%zsha1r'zsha224r)zsha256r+zsha384r-zsha512r/)B�__name__�
__module__�__qualname__rG�osrC�COMPILED_WITH_PYDEBUGr3r:rM�propertyrUr^rdrfrkrrrvryr�r�r�r�r�r�r�r�r��unittestZskipIfro�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��OPENSSL_ENFORCES_FIPSr�r�rr)rPrr$?sn	$..	$		r$c@s�eZdZd*d+d,d.d/gZiejd�dfejd
�dfejd�dfejd�dfejd�dfgd6ejd�dfejd�dfejd�dfejd�dfejd�dfgd6ejd�dfejd�dfejd�dfejd�dfejd�dfgd 6Zd!d"�Zej	d#�d$d%��Z
ejee
d&�d'�d(d)��ZdS)0�KDFTests�password�saltrgNr���passwordPASSWORDpassword�$saltSALTsaltSALTsaltSALTsaltSALTsalt�	password�saltr�Z(0c60c80f961f0e71f3a9b524af6012062fe037a6Z(ea6c014dc72d6f8ccd1ed92ace1d41f0d8de8957Z(4b007901b765489abead49d926f721d065a429c1Z23d2eec4fe41c849b80c8d83662c0e44a8b291a964cf2f07038�Z 56fa6aa75548099dcc37d7f03425e0c3r&Z@120fb6cffcf8b32c43e7225256c4f837a86548c92ccc35480805987cb70be17bZ@ae4d0c95af6b46d32d0adff928f06dd02a303f8ef3c251dfd6e2d85a95474c43Z@c5e478d59288c841aa530db6845c4c8d962893a001ce4e11a4963873aa98134aZP348c89dbcbd32b2f32d814b8116e84cf2b17347ebc1800181c4e2a1fb8dd53e1c635518c7dac47e9�(Z 89b69d0516f829893c696226650a8687r*Z�867f70cf1ade02cff3752599a3a53dc4af34c7a669815ae5d513554e1c8cf252c02d470a285a0501bad999bfe943c08f050235d7d68b1da55e63f73b60a57fceZ�e1d9c16aa681708a45f5c7c4e215ceb66e011a2e9f0040713f18aefdb866d53cf76cab2868a39b9f7840edce4fef5a82be67335c77a6068e04112754f27ccf4eZ�d197b1b33db0143e018b12f3d1d1479e6cdebdcc97c5c0f87f6902e072f457b5143f30602641b3d55cd335988cb36b84376060ecd532e039b742a239434af2d5Z�8c0511f4c6e597c6ac6315d8f0362e225f3c501495ba23b868c005174dc4ee71115b59f9e60cd9532fa33e0f75aefe30225c583a186cd82bd4daea9724a3d3b8r�Z 9d9e9c4cd21fe4be24d5b8244c759665r.c
Cs$xC|jj�D]2\}}x#t|j�D]\}}|\}}}}	||\}
}|ri|}	n||||||	�}|j||
|||||	f�||t|�t|�||	�}||t|�t|�||	�}|j||
�|	dkr,|||||�}|j||
||||f�q,q,WqW|jt|dddd�|jt|dddd�|jt	|dddd�|jt	|dddd�|jt	|ddddd�|jt	|ddddd�|j
t	d	��|d
ddd�WdQXdS)
Nssha1spassssaltrgr&�pass�saltrzunsupported hash type�unknown���r�)�pbkdf2_resultsrI�	enumerate�pbkdf2_test_vectorsrb�
memoryview�	bytearrayrhrjriZassertRaisesRegex)
r8Zpbkdf2Zdigest_nameZresultsrZvectorZpasswordr��roundsZdklenZexpectedZoverwrite_dklen�outrrr�_test_pbkdf2_hmac+s4	zKDFTests._test_pbkdf2_hmacz7skipped on Fedora, as we always use OpenSSL pbkdf2_hmaccCs|jtj�dS)N)r�Z
py_hashlib�pbkdf2_hmac)r8rrr�test_pbkdf2_hmac_pyHszKDFTests.test_pbkdf2_hmac_pyr�z   test requires OpenSSL > 1.0cCs|jtj�dS)N)r��	c_hashlibr�)r8rrr�test_pbkdf2_hmac_cLszKDFTests.test_pbkdf2_hmac_c)r�r�rgN)r�r�r�N)r�r�r�Nr�)r�r�r�r�)r�r�r�r�)r�r�r�r�rur�r�r�r��skipr�r�rKr�r�rrrrr��sF	r��__main__)rXrrRr�ror�r2r�r4rlrZtest.supportrrrrKr�r�rr�rr#ZTestCaser$r�r��mainrrrr�<module>	s.
	��Z