python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_hashlib.cpython-311.pyc

eJddlZddlmZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
mZddlmZmZddlmZddlmZddlmZddlmZdd	lmZeed
ZhdZe	jdZeeZnDd
ed dDZeddgZ!eekreddgZ"ndZ"	ddl#m$Z$m%Z%m&Z&m'Z'n#e($rdZ$dZ%e)Z&dZ'YnwxYw	ddl*Z*n
#e($rdZ*YnwxYwej+e*dZ,ej-dZ.ej+e.dZ/dZ0dZ1dZ2Gddej3Z4Gdd ej3Z5e6d!krej7dSdS)"N)	unhexlify)support)_4G
bigmemtest)import_fresh_module)	os_helper)threading_helper)warnings_helper)
HTTPExceptiongettotalrefcount>md5sha1sha3blake2sha256sha512PY_BUILTIN_HASHLIB_HASHESc6h|]}|S)strip).0ms  E/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_hashlib.py	<setcomp>r's-		",hashlib_hashlib)fresh)blocked)HASHHASHXOFopenssl_md_meth_names
get_fips_modecdSNrrrrrr%r%;sqrzrequires _blake2T)ubzrequires _sha3ct|tsJt|d}d}|D]}|||dz	dz||dzzz
} |S)N0123456789abcdef)
isinstancebytesrepr)shris    rhexstrr5Jsja((a(((A
A
,,	QQ#~
1s7
++Hrz(http://www.pythontest.net/hashlib/{}.txtc#Kt|}	tj|d}n<#tt
f$r(t
jd|wxYw|5|D]j}|}|	ds|s.|
d}t|d|d<|Vk	ddddS#1swxYwYdS)Nzutf-8)encodingzCould not retrieve {}#rr)
URLformatropen_urlresourceOSErrorrunittestSkipTestr
startswithsplitr/fromhex)	hash_nameurltestdatalinepartss     rread_vectorsrGUsT

**Y

CE+C'BBB]#EEE 7 > >s C CDDDE			D::<<Ds##
4
JJsOOE}}U1X..E!HKKKK
	s59A.3A.C//C36C3c@eZdZdZddhZejdkpeZdZ	fdZ
edZedZ
d	Zd
ZdZdZd
ZdZdZdZdZdZdZdZd`dZdZdZdZedZe dZ!		dadZ"dZ#e d Z$d!Z%e d"Z&ed#Z'd$Z(d%Z)d&Z*e+j,e-j.e/d'zkd(e0e/d'zd)d*d+Z1e+j,e-j.e/d)z
kd(e0e/d)z
d)d*d,Z2d-Z3d.Z4d/Z5d0Z6d1Z7d2Z8d3Z9d4Z:d5Z;d6Z<d7Z=d8Z>d9Z?d:Z@d;ZAd<ZBd=ZCd>ZDd?ZEd@ZFdAZGdBZHedCZIedDZJedEZKedFZLedGZMedHZNedIZOedJZPedKZQedLZRe dMZSe dNZTe dOZUe dPZVe dQZWe dRZXe dSZYe dTZZdUZ[dVZ\dWZ]dXZ^dYZ_e`jae`jbdZZcd[Zdeejfd\Zge+jheidud]d^Zjd_ZkxZlS)bHashLibTestCase)r
MD5rSHA1sha224SHA224rSHA256sha384SHA384rSHA512blake2bblake2ssha3_224sha3_256sha3_384sha3_512	shake_128	shake_256rXrYposixc	tj|S#t$r1}|jr |tvrtjd|zYd}~nd}~wwxYwdS)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_moduleModuleNotFoundError_warn_on_extension_importbuiltin_hasheswarningswarn)selfmodule_nameerrors   r_conditional_import_modulez*HashLibTestCase._conditional_import_modulerst	O*;777"	O	O	O-
O+2O2O
EMNNN	Ots
A'AAc0t}jD])}||*d}|r|ddhi_|D]5}tr|drtj|<6j	D]H\}}|tt|d|fd}||Id}|_|r
t|d
t|dj	D]L\}}t|d	|zd}	|	r1	|	||	<#t$rYHwxYwMfd
}
d}|r|
dd
}|r|
dd}
|
r|
d|
dd}|r|
d|
d|r|
d|
dtsYd}|rB|
d|
d|
d|
d|
d|
dt!t"j|i|dS)N_blake2rRrSsha3_cP|tj|fi|Stj||fi|SN)rnew)data_algkwargss   r_test_algorithm_via_hashlib_newzAHashLibTestCase.__init__.<locals>._test_algorithm_via_hashlib_news9<";t66v666{488888rropenssl_md5openssl_sha1openssl_cttd|}j||dS)N__get_builtin_constructor)getattrrconstructors_to_testadd)nameconstructorrcs  radd_builtin_constructorz9HashLibTestCase.__init__.<locals>.add_builtin_constructors?G''+FGGMMK%d+//<<<<<r_md5r
_sha1r_sha256rLr_sha512rOr_sha3rTrUrVrWrXrY)setsupported_hash_namesrxlowerrfupdaterw	SKIP_SHA3r?itemsrvrr
assertTruehasattr
ValueErrorsuperrI__init__)rcargsro
algorithms	algorithmrhconstructorsrprrzr{r|r}r~rr	__class__s`               rrzHashLibTestCase.__init__{sUU
2	.	.INN9??,,----11)<<	6y)4555$&!#	9	9I
Y11'::
3655D%i00(,'@'F'F'H'H	>	>#I|WWi8899959	
9
9
9
9
<====22:>> 
	6
OOGHm<<===OOGHn==>>>+/+D+J+J+L+L	
6	
6'	<%h
90DdKK66#


%((5555	&6	=	=	=	=	=..v66	+##E***//88	,##F+++11)<<	.##H---##H---11)<<	.##H---##H---	/##I...##I...	533G<<E
5''
333''
333''
333''
333''444''444-ot$$-t>v>>>>>s*
G


GGcr|j}tj|Srk)rwvalues	itertoolschain
from_iterable)rcrs  rhash_constructorsz!HashLibTestCase.hash_constructorss,07799,,\:::rctSrk)r%rcs ris_fips_modezHashLibTestCase.is_fips_modesrctjdtd}|jD]G}||d}|j|jvr|d3|HdS)Nb
Fusedforsecurity)arrayrangerryshakes	hexdigest)rcaconscs    rtest_hash_arrayzHashLibTestCase.test_hash_arraysxKU2YY''*		DQ...Av$$B



		rc~|tjtd|jDdS)Nc3BK|]}||VdSrk)islower)r_algos  r	<genexpr>z=HashLibTestCase.test_algorithms_guaranteed.<locals>.<genexpr>sB&&%]]__&&&&&&&r)assertEqualralgorithms_guaranteedrrrs rtest_algorithms_guaranteedz*HashLibTestCase.test_algorithms_guaranteedsT6&&4#<&&&
&
&	'	'	'	'	'rc"|ttjtj|dtjtjD]}tj|d}dS)N	undefinedFr)rrrrissubsetalgorithms_availableassertNotInrl)rcrydigests   rtest_algorithms_availablez)HashLibTestCase.test_algorithms_availablesG9::$HW%ABB	D	D	D	
g&BCCC0	>	>D[u===FF	>	>rctjdd|jr|d|jD]}|d|ddtjddtjd|j9|jdd|jddSdS)NrTrzskip in FIPS moderr
)rrlrskipTestrr
rrqrcrs  rtest_usedforsecurity_truez)HashLibTestCase.test_usedforsecurity_truesHd3333	/MM-...*	,	,DD&&&&Dd+++++E40000D))))=$MeT:::M%%d%;;;;;%$rcNtjdd|jD]}|d|ddtjddtjd|j9|jdd|jddSdS)NrFrrr
)rrlrr
rrqrs  rtest_usedforsecurity_falsez*HashLibTestCase.test_usedforsecurity_falsesHe4444*	-	-DD''''De,,,,,E51111E****=$MeU;;;M%%e%<<<<<%$rc|ttjd|ttjddS)Nzspam spam spam spam spam)assertRaisesrrrl	TypeErrorrs rtest_unknown_hashz!HashLibTestCase.test_unknown_hashs=*gk3MNNN)W[!44444rc`|tjdjddS)NrNr)rrrlryrs rtest_new_upper_to_lowerz'HashLibTestCase.test_new_upper_to_lowers+X..3X>>>>>rcttd}ttd}|t|d	ddl}n%#t
$r|dYnwxYwdtjd<|		|t|ddtvr|tjd<n@tjd=n2#dtvr|tjd<n
tjd=wxYw|t|d|d}|||j
|t|d	dgdS)
Nru__builtin_constructor_cachetestrz_md5 module not availabler|r
rJ)rvrrrr|ImportErrorrsysmodulesclearlocalsrassertIsr
rsorted)rcget_builtin_constructorbuiltin_constructor_cacher|rzs     rtest_get_builtin_constructorz,HashLibTestCase.test_get_builtin_constructors")'*E#G#G$+G,I%K%K!*&=vFFF	7KKKK	7	7	7MM566666	7#F!'')))	(j*A5III!!&*F##K''!!&*F##K''''')%<a@@@--e44

k48,,, 9::UENKKKKKsA

A/.A/C  /Dc*|jD]	}|d}|j|jvrx||dt
|t|d|d||t
|t||dS)NFrr)	rryrassertIsInstancerr/rr5rrcrr2s   rtest_hexdigestzHashLibTestCase.test_hexdigest s*	D	DDU+++Av$$%%ahhrllE:::  !5!5q{{2GGGG%%ahhjj%888  

!3!3Q[[]]CCCC	D	Drc	zd}|jD]}|d}|j|jvrtt	|tr:|j|jfD]g}|t|d|D]F}|ttf5||dddn#1swxYwYGhdS)N)i ll
lll
Fri)
rryrr"r.rrrr
OverflowError)rclarge_sizesrr2rlengths      rtest_digest_length_overflowz+HashLibTestCase.test_digest_length_overflow*s$L*	'	'DU+++AvT[((Jq$$7$7(AK/
'
'!!*fc:::)''F**J
+FGG''v''''''''''''''''
'	'	'sB-	-B1
4B1
c|jD]}|d}||jt|j|jvr!||j|jn ||j|j||jtj	|jdjdS)NFr)
rrrystrrassertInrrrrlrs   rtest_name_attributez#HashLibTestCase.test_name_attribute:s*
	
	DU+++A!!!&#...v222

afd&?@@@@  )BCCCAFE:::?




	
	rc@d}d}d}d}|jD]}|d}|||||||||j|jvrd}nd}|d}|||z|z|z||j||j||||z|z|zd}	||j||	j||||z|zd}
|
j|}|
}||||j||j|||
j||dS)	Nsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbs~ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccsddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddFr)rr)rrryrrrcopy)
rcaasbeesceesdeesrm1rm2m3m4	m4_digestm4_copys
             rtest_large_updatez!HashLibTestCase.test_large_updateGs*	:	:De,,,BIIcNNNIIdOOOIIdOOOIIdOOOw$+%%e,,,BIIcDj4'$.///YRY-yry$/?@@@cDj4'$.FFFBYRY-yry$/?@@@cDj4'???B!	4(IggiiGNN4   YRY-~w~t/DEEEYRY-y99991	:	:rFct|dz}|}|j|}|t|d|D]}||fi|}	|s|	n|	|}
||
|d|||
t||fz|s|	n|	|}
t|}||
||s(|t||	j	|s.|
d||||dSdSdS)NzrHash algorithm %s constructed using %s returned hexdigest %r for %d byte input data that should have hashed to %r.key)lenrrwassertGreaterEqualrrrr/rAdigest_sizegetcheck_file_digest)rcryrmrshakerorrhash_object_constructorrcomputedrs            rcheckzHashLibTestCase.checkgsY"OO%%	06L 1 11555'3
	=
	=#''7777A,1Jq{{}}}q{{67J7JHiP4TI77
8
8
8*/DqxxzzzAHHV4D4DH]]9--FXv...
=  Vam<<<	:E**2""4y99999	:	:22rc|}	tj|n#t$rYdSwxYw|g}||j|t
tjd5}|	|dddn#1swxYwY	|D]}tj|}|d|
tj|||t
tjd5}tj||}dddn#1swxYwY|
||	t!jtjdS#t!jtjwxYw)Nwbrrb)rrrlrextendrwopenrTESTFNwriteioBytesIOseekrfile_digestrosunlink)	rcryrmrdigestsfrbuf	digestobjs	         rrz!HashLibTestCase.check_file_digests$OO%%		K			FF	&t06777
)"D
)
)	Q
GGDMMM																(!
C
Cj&&  'V44>>@@))*D11?Q ' 3Av > >I???????????????  !4!4!6!6	BBBB
C
Ii&'''''BIi&''''sO+
999BB"B'BF )E?F E	F E	,F   Gcb|j|}|D]}|t|ddS)Nspam)rwrr)rcalgorithm_namerrs    rcheck_no_unicodez HashLibTestCase.check_no_unicodesI0@'3	J	J#i)@&IIII	J	Jrc|d|d|d|d|d|ddS)Nr
rrLrrOrrrs rtest_no_unicodezHashLibTestCase.test_no_unicodese$$$f%%%h'''h'''h'''h'''''rcZ|d|ddS)NrRrSrrs rtest_no_unicode_blake2z&HashLibTestCase.test_no_unicode_blake2s0i(((i(((((rc|d|d|d|d|d|ddS)NrTrUrVrWrXrYrrs rtest_no_unicode_sha3z$HashLibTestCase.test_no_unicode_sha3sj)))j)))j)))j)))k***k*****rrNc|j|}|D]{}|d}||j|||j||rp|t	||||t	||d|znm|t	|||t	|d|z||j|||	ddt|}dS)NFrr_r)rwr
block_sizerrrrryrr@r0)rcryrr
digest_lengthrrrs        rcheck_blocksize_namez$HashLibTestCase.check_blocksize_namest06'3	7	7#''>>>AQ\:666Q]K888
D  QXXm%<%<!=!=!.000  Q[[%?%?!@!@!"=2222  QXXZZ+>>>  Q[[]]!3!3Q{]CCCQVT***MM$**S//!,d1gg6666	7	7rc|ddd|ddd|ddd|ddd	|d
dd|d
dddS)Nr
@rrrLr rO0rrrs rtest_blocksize_namez#HashLibTestCase.test_blocksize_names!!%R000!!&"b111!!(B333!!(B333!!(C444!!(C44444rc|ddd|ddd|ddd	|d
dd|d
ddd|dddddS)NrTrrUrrVhrrWHrrXrrYr rs rtest_blocksize_name_sha3z(HashLibTestCase.test_blocksize_name_sha3s!!*c2666!!*c2666!!*c2666!!*b"555!!+sAr:::!!+sAr:::::rcL|j|}|D]}|}tt|tr)|||zd||j|||j|||j|dS)Ni@)rwr"r.r_capacity_bits
_rate_bits_suffix)rcrycapacityratesuffixrrrs        r
check_sha3zHashLibTestCase.check_sha3s06'3	0	0#''))AJq$$7$7X_d333Q-x888Q\4000QY////	0	0rc&|dddd|dddd|dd	d
d|ddd
d|dddd|dddddS)NrTiirUi@rVii@rWi@rXi@rY)r0rs rtest_extra_sha3zHashLibTestCase.test_extra_sha3s
Cw777
Cw777
Cg666
D#w777S$888S$88888rcb|ddd|ddddS)NrRrrrSrr rs rtest_blocksize_name_blake2z*HashLibTestCase.test_blocksize_name_blake2s8!!)S"555!!)R44444rc8|dddddS)Nr
r d41d8cd98f00b204e9800998ecf8427eFrrrs rtest_case_md5_0zHashLibTestCase.test_case_md5_0s2

3:!		
	
	
	
	
rc8|dddddS)Nr
abc 900150983cd24fb0d6963f7d28e17f72Frr<rs rtest_case_md5_1zHashLibTestCase.test_case_md5_1s2

6=!		
	
	
	
	
rc8|dddddS)Nr
s>ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 d174ab98d277d9f5a5611c2c9f419d9fFrr<rs rtest_case_md5_2zHashLibTestCase.test_case_md5_2s3

M.!			
	
	
	
	
rz!test cannot run on 32-bit systemsr)sizememusedry_runc:|dd|zddS)Nr
A c9af2dff37468ce5dfee8f2cfc0a9c6dr<rcrFs  rtest_case_md5_hugez"HashLibTestCase.test_case_md5_huge%	

5$t)%GHHHHHrc:|dd|zddS)Nr
rJ 28138d306ff1b8281f1a9067e1a1a2b3r<rLs  rtest_case_md5_uintmaxz%HashLibTestCase.test_case_md5_uintmax
rNrc4|ddddS)Nrr(da39a3ee5e6b4b0d3255bfef95601890afd80709r<rs rtest_case_sha1_0z HashLibTestCase.test_case_sha1_0s)

63=	?	?	?	?	?rc4|ddddS)Nrr?(a9993e364706816aba3e25717850c26c9cd0d89dr<rs rtest_case_sha1_1z HashLibTestCase.test_case_sha1_1s)

66=	?	?	?	?	?rc4|ddddS)Nr8abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq(84983e441c3bd26ebaae4aa1f95129e5e54670f1r<rs rtest_case_sha1_2z HashLibTestCase.test_case_sha1_2s*

6N=	?	?	?	?	?rc:|dddzddS)Nra@B(34aa973cd4c4daa4f61eeb2bdbad27316534016fr<rs rtest_case_sha1_3z HashLibTestCase.test_case_sha1_3#s-

64'>=	?	?	?	?	?rc4|ddddS)NrLr8d14a028c2a3a2bc9476102bb288234c415a2b01f828ea62ac5b3e42fr<rs rtest_case_sha224_0z"HashLibTestCase.test_case_sha224_0,s.

8S
D	F	F	F	F	Frc4|ddddS)NrLr?823097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7r<rs rtest_case_sha224_1z"HashLibTestCase.test_case_sha224_10s.

8V
D	F	F	F	F	Frc4|ddddS)NrLrY875388b16512776cc5dba5da1fd890150b0c6455cb4f58b1952522525r<rs rtest_case_sha224_2z"HashLibTestCase.test_case_sha224_24s/

8
E
D	F	F	F	F	Frc:|dddzddS)NrLr]r^820794655980c91d8bbb4c1ea97618a4bf03f42581948b2ee4ee7ad67r<rs rtest_case_sha224_3z"HashLibTestCase.test_case_sha224_39s2

8TG^
D	F	F	F	F	Frc4|ddddS)Nrr@e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855r<rs rtest_case_sha256_0z"HashLibTestCase.test_case_sha256_0>s.

8S
L	N	N	N	N	Nrc4|ddddS)Nrr?@ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015adr<rs rtest_case_sha256_1z"HashLibTestCase.test_case_sha256_1Bs.

8V
L	N	N	N	N	Nrc4|ddddS)NrrY@248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1r<rs rtest_case_sha256_2z"HashLibTestCase.test_case_sha256_2Fs/

8
E
L	N	N	N	N	Nrc:|dddzddS)Nrr]r^@cdc76e5c9914fb9281a1c7e284d73e67f1809a48a497200e046d39ccc7112cd0r<rs rtest_case_sha256_3z"HashLibTestCase.test_case_sha256_3Ks2

8TG^
L	N	N	N	N	Nrc4|ddddS)NrOr`38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95br<rs rtest_case_sha384_0z"HashLibTestCase.test_case_sha384_0Ps+

8S-	.	.	.	.	.rc4|ddddS)NrOr?`cb00753f45a35e8bb5a03d699ac65007272c32ab0eded1631a8b605a43ff5bed8086072ba1e7cc2358baeca134c825a7r<rs rtest_case_sha384_1z"HashLibTestCase.test_case_sha384_1Us+

8V-	.	.	.	.	.rc4|ddddS)NrOpabcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmnhijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu`09330c33f71147e83d192fc782cd1b4753111b173b3b05d22fa08086e3b0f712fcc7c71a557e2db966c3e9fa91746039r<rs rtest_case_sha384_2z"HashLibTestCase.test_case_sha384_2Zs/

8O-	.	.	.	.	.rc:|dddzddS)NrOr]r^`9d0e1809716474cb086e834e310a4a1ced149e9c00f248527972cec5704c2a5b07b8b3dc38ecc4ebae97ddd87f3d8985r<rs rtest_case_sha384_3z"HashLibTestCase.test_case_sha384_3as/

8TG^-	.	.	.	.	.rc4|ddddS)Nrrڀcf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3er<rs rtest_case_sha512_0z"HashLibTestCase.test_case_sha512_0gs1

8SM	N	N	N	N	Nrc4|ddddS)Nrr?ڀddaf35a193617abacc417349ae20413112e6fa4e89a97ea20a9eeee64b55d39a2192992a274fc1a836ba3c23a3feebbd454d4423643ce80e2a9ac94fa54ca49fr<rs rtest_case_sha512_1z"HashLibTestCase.test_case_sha512_1ls1

8VM	N	N	N	N	Nrc4|ddddS)Nrrڀ8e959b75dae313da8cf4f72814fc143f8f7779c6eb9f7fa17299aeadb6889018501d289e4900f7e4331b99dec4b5433ac7d329eeb6dd26545e96e55b874be909r<rs rtest_case_sha512_2z"HashLibTestCase.test_case_sha512_2qs5

8OM	N	N	N	N	Nrc:|dddzddS)Nrr]r^ڀe718483d0ce769644e2e42c7bc15b4638e1f98b13b2044285632a803afa973ebde0ff244877ea60a4cb0432ce577c31beb009c5c2c49aa2e4eadb217ad8cc09br<rs rtest_case_sha512_3z"HashLibTestCase.test_case_sha512_3xs5

8TG^M	N	N	N	N	NrcZ	||j|t|dzD]}|d|zd|dzz}|t||||j|t|dzD]}|d|zd|dzz}	|t||	||j|td|dzD]}|||t|d|t|d|t||dz||j|t|dzD]}|d|zd|dzz}
|t||
|||d	tdd
D]}|||t|d|t|d
tdd
D]}|||t|d|t|d|t|d
tdd
D]}||
|t|d
|t|d

td|dzD]}|||t|d|t||dz|d|d|t|d|t|d|d|||t|d|t||dz|t|d	|t|d	|t|d|d	d	d	d	dddd
dddddS)Nrr]salt)personrrrrr5)fanout)depth)
node_depth)
inner_size)	leaf_sizel)node_offset)rm)stringr+r3T)rrrrrrrrrr	last_node)r	SALT_SIZErrrPERSON_SIZEMAX_DIGEST_SIZEMAX_KEY_SIZErrr)rcrz	salt_sizeperson_sizekey_sizer
max_offsetr4rrrs           rcheck_blake2zHashLibTestCase.check_blake2}sT.	:::y1}%%	'	'AKTAX&&&&&y1}%*k===0+>>>{1}%%	)	)AKtax(((((q)*k&AAA4kBBBq+/**	'	'AKA&&&&&*krBBB*kqAAA*k{1}MMM18<<<xz""	&	&AKD1H%%%%%hl#*ks;;;0022$---7799	;	;	;q#	"	"AKq!!!!!*k"===*k#>>>q#	!	!AKa     *k<<<*k;;;*k===q#	&	&AK1%%%%%*kbAAA*kcBBBq+/**	&	&AK1%%%%%*kbAAA*kk!mLLLa    i((((*kR@@@-FFF""""
++++*krBBB-*Q,OOO)[s;;;)[===)["555
	

	

	

	

	

	
rc^d}|d}|D]}|D]}|||}|||}	|||}
||
|||	|}|||S)Ncd}d|z|z}d}t|}t|D]}||z|z}||}}|dz	dz||<|S)NrlKZ=r)	bytearrayr)rseedmaskrroutr4ts        rselftest_seqz4HashLibTestCase.blake2_rfc7693.<locals>.selftest_seqslDd"d*AAF##C6]]
*
*UdN!1r'T)AJrrr)rr)rrr)rcrzmd_lenin_lenrouteroutleninlenindatarunkeyedkeyeds            rblake2_rfc7693zHashLibTestCase.blake2_rfc7693s						+++	-	-F
-
-%eU33"l6622%+f&AAAW^^--...#FHHHU\\^^,,,,

-   rc|tjdddddgd}gd}||tj||ddS)Nrrl)rrrr)rrrrr4@c23a7800d98123bd10f506c61e29da5603d763b8bbad2e737f5e765a7bccd475)rrrRrr)rc
b2b_md_len
b2b_in_lens   rtest_blake2bzHashLibTestCase.test_blake2bsy'/2r2r9EEE%%%
000
ZHHN	P	P	P	P	Prc4|ddddS)NrRrڀ786a02f742015903c6c6fd852552d272912f4740e15847618a86e217f71f5419d25e1031afee585313896444934eb04b903a685b1448b755d56f701afe9be2cer<rs rtest_case_blake2b_0z#HashLibTestCase.test_case_blake2b_0s1

9cM	N	N	N	N	Nrc4|ddddS)NrRr?ڀba80a53f981c4d0d6a2797b69f12f6e94c212f14685ac4b74b12bb6fdbffa2d17d87c5392aab792dc252d5de4533cc9518d38aa8dbf1925ab92386edd4009923r<rs rtest_case_blake2b_1z#HashLibTestCase.test_case_blake2b_1s1

9fM	N	N	N	N	NrcL|ddddddddd	d
ddd
ddS)NrRfoo 920568b0c5873b2f0ab67bedb6cf1b2brbarbazbingrrr,rErTrrrrrrrrrrrr<rs r test_case_blake2b_all_parametersz0HashLibTestCase.test_case_blake2b_all_parametersQ	

9f
,						rctdD]9\}}}t|}|d|||:dS)NrRrrGr/rArrcmsgrmds    rtest_blake2b_vectorsz$HashLibTestCase.test_blake2b_vectors	W(33	4	4LCb--$$CJJy#rsJ3333	4	4rc|tjdddddgd}gd}||tj||ddS)Nrl)rrrr)rrrArr4@6a411f08ce25adcdfb02aba641451cec53c598b24f4fc787fbdc88797f4c1dfe)rrrSrr)rc
b2s_md_len
b2s_in_lens   rtest_blake2szHashLibTestCase.test_blake2ssy'/1aRCCC%%%
...
ZHHN	P	P	P	P	Prc4|ddddS)NrSr@69217a3079908094e11121d042354a7c1f55b6482ca1a51e1b250dfd1ed0eef9r<rs rtest_case_blake2s_0z#HashLibTestCase.test_case_blake2s_0s.

9c
L	N	N	N	N	Nrc4|ddddS)NrSr?@508c5e8c327c14e2e1a72ba34eeb452f37458b209ed63a294d999b4c86675982r<rs rtest_case_blake2s_1z#HashLibTestCase.test_case_blake2s_1s.

9f
L	N	N	N	N	NrcL|ddddddddd	d
ddd
ddS)NrSr bf2a8f7fe3c555012a6f8046e646bc75rrrrrrr,rErrTrr<rs r test_case_blake2s_all_parametersz0HashLibTestCase.test_case_blake2s_all_parameters"rrctdD]9\}}}t|}|d|||:dS)NrSrrrs    rtest_blake2s_vectorsz$HashLibTestCase.test_blake2s_vectors4rrc4|ddddS)NrTr86b4e03423667dbb73b6e15454f0eb1abd4597f9a1b078e3f5b5a6bc7r<rs rtest_case_sha3_224_0z$HashLibTestCase.test_case_sha3_224_0:s.

:s
D	F	F	F	F	Frc^tdD]\}}|d||dS)NrTrGrrcrrs   rtest_case_sha3_224_vectorz)HashLibTestCase.test_case_sha3_224_vector?@#J//	,	,GCJJz3++++	,	,rc4|ddddS)NrUr@a7ffc6f8bf1ed76651c14756a061d662f580ff4de43b49fa82d80a4b80f8434ar<rs rtest_case_sha3_256_0z$HashLibTestCase.test_case_sha3_256_0Ds.

:s
L	N	N	N	N	Nrc^tdD]\}}|d||dS)NrUrrs   rtest_case_sha3_256_vectorz)HashLibTestCase.test_case_sha3_256_vectorIrrc4|ddddS)NrVr`0c63a75b845e4f7d01107d852e4c2485c51a50aaaa94fc61995e71bbee983a2ac3713831264adb47fb6bd1e058d5f004r<rs rtest_case_sha3_384_0z$HashLibTestCase.test_case_sha3_384_0Ns+

:s-	.	.	.	.	.rc^tdD]\}}|d||dS)NrVrrs   rtest_case_sha3_384_vectorz)HashLibTestCase.test_case_sha3_384_vectorTrrc4|ddddS)NrWrڀa69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26r<rs rtest_case_sha3_512_0z$HashLibTestCase.test_case_sha3_512_0Ys1

:sM	N	N	N	N	Nrc^tdD]\}}|d||dS)NrWrrs   rtest_case_sha3_512_vectorz)HashLibTestCase.test_case_sha3_512_vector_rrcf|dddd|dddddS)NrXr@7f9c2ba4e88f827d616045507605853ed73b8093f6efbc88eb1a6eacfa66ef26T7f9cr<rs rtest_case_shake_128_0z%HashLibTestCase.test_case_shake_128_0dB

;
L
				

;VT22222rc`tdD]\}}|d||ddS)NrXTrrs   rtest_case_shake128_vectorz)HashLibTestCase.test_case_shake128_vectorjB#K00	3	3GCJJ{CT2222	3	3rcf|dddd|dddddS)NrYr@46b9dd2b0ba88d13233b3feb743eeb243fcd52ea62b81b82b50c27646ed5762fT46b9r<rs rtest_case_shake_256_0z%HashLibTestCase.test_case_shake_256_0nr
rc`tdD]\}}|d||ddS)NrYTrrs   rtest_case_shake256_vectorz)HashLibTestCase.test_case_shake256_vectortr
rcd}|jD]u}|d}|d|d|z|d|d|zd}|dvtj}|d|d|z|d||dtjdd|zzdz}||ddS)NiFr1#x@1cfceca95989f51f658e3f3ffe7f1cd43726c9e088c13ee10b46f57cef135b94)rrrrrr)rcgil_minsizerrs    rtest_gilzHashLibTestCase.test_gilxsD*		DU+++A
HHTNNN
HHTK'(((
HHTNNNTK'???A
HHTNNNNN		#$$$	
KKMMN	
	
	


N4$"44t;<<
KKMMN	
	
	
	
	
rcv	
tj
d}d}|dz	tj	|z}	
fd}g}t|D]}t		d|zz}||d||t	|zdtj||f}|	||D]}|
|D]}|||
dS)NrEsswineflui@
cd}|tkr:|||z||z
}|tk8dSdSr')rr)
chunk_sizeindexrmhashers  rhash_in_chunksz=HashLibTestCase.test_threaded_hashing.<locals>.hash_in_chunksscE#d))##

d5);#;<===##d))######rrr)targetr)rrrrr
assertGreaterr	threadingThreadappendstartjoin)rcnum_threads
smallest_data
expected_hashr threads	threadnumrthreadrmrs         @@rtest_threaded_hashingz%HashLibTestCase.test_threaded_hashingse#
v%T+%566@@BB
	$	$	$	$	$	${++	#	#ITrY7Jz1---Z#m*<*<<a@@@%^,6=:::FNN6""""		FLLNNNN		FKKMMMM(8(8(:(:;;;;;rcR|j}|||tdSdSrk)rrint)rc	fips_modes  rtest_get_fips_modez"HashLibTestCase.test_get_fips_modes4%	 !!)S11111! rc	R|jD]\}}|dr|D]n}	|}n#t$rYwxYw||5tj|t|dddn#1swxYwYodS)N)rirblake)rz)rwrr?rsubTestrcheck_disallow_instantiationtype)rcrrrzr2s     rtest_disallow_instantiationz+HashLibTestCase.test_disallow_instantiations*'+'@'F'F'H'H	H	H#I|##$?@@
+
H
H#

AA!H\\k\::HH8tAwwGGGHHHHHHHHHHHHHHH

H	H	Hs#
A
AA+#BB!Bz
need _hashlibcntj|ttj|tdSrk)rr6r"r#rs r test_hash_disallow_instantiationz0HashLibTestCase.test_hash_disallow_instantiations0	,T4888,T7;;;;;rc	p|jD]\}}|D]}	t|}n#t$rY'wxYw||5|td5d|_dddn#1swxYwYdddn#1swxYwYdS)N)	hash_typezimmutable typeF)rwrr7rr5assertRaisesRegexrvalue)rcrrrzr<s     rtest_readonly_typesz#HashLibTestCase.test_readonly_typessZ'+'@'F'F'H'H
	0
	0#I|+
0
0 $[[]] 3 3II!H\\I\6600//	;KLL00*/	000000000000000000000000000000

0
	0
	0sE<
A	A	"B)>B	B)B
B)B
B))B-0B-)F)rrN)m__name__
__module____qualname__rrrryCOMPILED_WITH_PYDEBUGr_rfrpropertyrrrrrrrrrrrrrrrrrrrequires_blake2r
requires_sha3rrr!r(r0r7r9r=rArDr=skipIfrmaxsizerrrMrQrTrWr[r`rcrfrirlrorrrurxr{r~rrrrrrrrrrrrrrrrrrrrrrrrrrr	rrrrr	reap_threadsrequires_working_threadingr.r2rcpython_onlyr8
skipUnlessr"r:r?
__classcell__)rs@rrIrIes7;
'F!#7 2 K6KK?K?K?K?K?Z;;X;X'''
>>><<<	=	=	=555???LLL4DDD''' :::@::::2(((4JJJ((())_)++]+DE+/7777&555;;];
0
0
099]955_5








X_S[37*,OPPZS1WQ666II76QPIX_S[37*,OPPZS1WQ666II76QPI?????????
???FFFFFFFFF
FFF
NNNNNNNNN
NNN
...
...
......NNN
NNN
NNNNNN
M
M
M
^!!!,PP_PNN_N
NN_N
_"44_4
PP_PNN_NNN_N_"44_4
FF]F,,],NN]N,,],..].
,,],NN]N
,,],333333333333


:"0022!<!<32#"!<F222


H
H
HXT)?;;<<<;<
0000000rrIc
4eZdZgdZdddddedfdddd	ded
fddd
d	dedfgZeddfeddfeddfeddfeddfgeddfeddfeddfeddfeddfgeddfeddfeddfedd fed!dfgd"Zd#Z	e
jedud$d%Z
e
jeed&d'd(Ze
jeed)d*e
jed+,d-Zd.Zd/ZdS)0KDFTests))passwordsaltrN)rPrQrN)rPrQN)spasswordPASSWORDpasswords$saltSALTsaltSALTsaltSALTsaltSALTsaltrRr)s	passwordssaltrRrrrrڀ77d6576238657b203b19ca42c18a0497f16b4844e3074ae8dfdffa3fede21442fcd0069ded0948f8326a753a0fc81f17e8d3e0fb2e0d3628cf35e20c38d18906rPsNaClr4rڀfdbabe1c9d3472007856e7190d01e9fe7c6ad7cbc8237830e77376634b3731622eaf30d92e22a3886ff109279d9830dac727afb94a83ee6d8360cbdfa2cc0640s
pleaseletmeinsSodiumChloridei@ڀ7023bdcb3afd7348461c06cd81fd38ebfda8fbba904f8e3ea9b543f6545da1f2d5432955613f0fcf62d49705242a9af9e61e85dc0d651e40dfcf017b45575887(0c60c80f961f0e71f3a9b524af6012062fe037a6N(ea6c014dc72d6f8ccd1ed92ace1d41f0d8de8957(4b007901b765489abead49d926f721d065a429c123d2eec4fe41c849b80c8d83662c0e44a8b291a964cf2f07038 56fa6aa75548099dcc37d7f03425e0c3@120fb6cffcf8b32c43e7225256c4f837a86548c92ccc35480805987cb70be17b@ae4d0c95af6b46d32d0adff928f06dd02a303f8ef3c251dfd6e2d85a95474c43@c5e478d59288c841aa530db6845c4c8d962893a001ce4e11a4963873aa98134aP348c89dbcbd32b2f32d814b8116e84cf2b17347ebc1800181c4e2a1fb8dd53e1c635518c7dac47e9( 89b69d0516f829893c696226650a8687ڀ867f70cf1ade02cff3752599a3a53dc4af34c7a669815ae5d513554e1c8cf252c02d470a285a0501bad999bfe943c08f050235d7d68b1da55e63f73b60a57fceڀe1d9c16aa681708a45f5c7c4e215ceb66e011a2e9f0040713f18aefdb866d53cf76cab2868a39b9f7840edce4fef5a82be67335c77a6068e04112754f27ccf4eڀd197b1b33db0143e018b12f3d1d1479e6cdebdcc97c5c0f87f6902e072f457b5143f30602641b3d55cd335988cb36b84376060ecd532e039b742a239434af2d5ڀ8c0511f4c6e597c6ac6315d8f0362e225f3c501495ba23b868c005174dc4ee71115b59f9e60cd9532fa33e0f75aefe30225c583a186cd82bd4daea9724a3d3b8r 9d9e9c4cd21fe4be24d5b8244c759665)rrrc|jD]\}}||vrt|jD]\}}|\}}}	}
||\}}|r|}
|||||	|
}
||
|||||	|
f||t|t||	|
}
||
|||t
|t
||	|
}
||
||
)|||||	}
||
|||||	f|td5|dddddddn#1swxYwYd|vr|	t|dddd|	t|ddd	d|	t|dddd
|	t|dddd|	t|ddddd
|	t|ddddd|ddddd
}
||
|jdd
d
dSdS)Nz.*unsupported.*unknownspassrQrrssha1passrrrrP)rBpasswordr
iterationsdklen)pbkdf2_resultsr	enumeratepbkdf2_test_vectorsr
memoryviewrr=rrr)rcpbkdf2	supporteddigest_nameresultsr4vectorrjrroundsrlexpectedoverwrite_dklenrs              r_test_pbkdf2_hmaczKDFTests._test_pbkdf2_hmacsf$($7$=$=$?$?	L	L K)++&t'?@@
L
L	606-$,3AJ)/",+Ef[(D&%HH  h"-xvu!MOOOf[*X*>*>'--vu>>  h///f[)H*=*=&t__fe==  h///= &hfEEC$$S(&18T6%JLLL!
L&
#
#J0A
B
B	3	3F9gw222	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3Y67GWa



66661



FFGWa



FFGWb



FFGWa



FFGWa


&6KgD***CS$"5f"=a"@"CDDDDD+sE!!E%(E%ztest requires builtin_hashlibctj5|tjt
ddddS#1swxYwYdSrk)r
check_warningsrybuiltin_hashlibpbkdf2_hmacr`rs rtest_pbkdf2_hmac_pyzKDFTests.test_pbkdf2_hmac_pyMs

+
-
-		""+^


																		s&AAAr}z   test requires OpenSSL > 1.0cP|tjtdSrk)ryopenssl_hashlibr}r$rs rtest_pbkdf2_hmac_czKDFTests.test_pbkdf2_hmac_cTs$	
:<QRRRRRrscryptz   test requires OpenSSL > 1.1zscrypt is blocked in FIPS mode)reasonc
:|jD]8\}}}}}}tj|||||}|||9tjddddd|t
5tjddddddddn#1swxYwY|t
5tjddddddddn#1swxYwY|t
5tjddddn#1swxYwY|t
5tjdddddn#1swxYwY|t
5tjddddd	dddn#1swxYwYd
D]Z}|ttt
f5tjdd|dddddn#1swxYwY[dD]Z}|ttt
f5tjddd|ddddn#1swxYwY[dD]Z}|ttt
f5tjdddd|dddn#1swxYwY[dD][}|ttt
f5tjddddd|
dddn#1swxYwY\dD][}	|ttt
f5tjddddd|	dddn#1swxYwY\dS)N)rnr3prPrQrrrrjrr)rrrN)rrN)rN)rrr3rmaxmem)rrr3rrl)scrypt_test_vectorsrrrrrrr)
rcrjrrr3rrwresultrrls
          rtest_scryptzKDFTests.test_scryptYsy261I	/	/-HdAq!X^H41QGGGFVX....	{Aa@@@@


y
)
)	D	DN:GqACCCC	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D


y
)
)	D	DN;VqACCCC	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D

y
)
)	(	(N;'''	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(


y
)
)	1	1N;000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1


y
)
)	?	?N;1ag>>>>	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?!	I	IA""J
y#IJJ
I
I{AaHHHH
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I	I	IA""J
y#IJJ
I
I{AaHHHH
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I	I	IA""J
y#IJJ
I
I{AaHHHH
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I 	.	.F""J
y#IJJ
.
.{Aa&,....
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 	,	,E""J
y#IJJ
,
,{Aa%*,,,,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,	,	,s4BB!B?C%%C),C)
D++D/2D/E22E69E6F==GG3HH	 H	I66I:	=I:	-KK	K	
L11L5	8L5	(NN	N	c|dtj|dtjdS)N
blake2b512zsha3-512)rrrrs rtest_normalized_namezKDFTests.test_normalized_names:w'CDDDW%ABBBBBrcddz}tj}|tjt
jtt
jd5}tdD],}|	||
|-	dddn#1swxYwYtt
jd5}tj|tj}dddn#1swxYwY||
|
||j|j|t!|t!||t$5tjdddddn#1swxYwY|t$5tt
jd5}tj|ddddn#1swxYwYdddn#1swxYwY|t$5tt
jd5}tj|ddddn#1swxYwYddddS#1swxYwYdS)Nr]irrrrr3)rr
addCleanuprrrrrrrrrrrryrr7rr)rcrmd1rrd2s      rtest_file_digestzKDFTests.test_file_digestse|
^

	9#3444
)"D
)
)	Q2YY

		$




															
)"D
)
)	8Q$Q77B	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8	
888"'***

d2hhR)))


z
*
*	0	0h///	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0

z
*
*	1	1i&,,
1#Ax000
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1

z
*
*	1	1i&--
1#Ax000
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1s=B''B+.B+ C88C<?C<'G		G
G
.I	H+I+H/	/I2H/	3II	I'J<J$J<$J(	(J<+J(	,J<<KK)r@rArBrorrr/rArmryr=rGr|r~rLrrrrr%rrrrrrrOrOsv			

c2q!YY(jkk	l	gtQII7y-z-z	{	,eQ99FH<I<I	J]]E
F
FM
]]E
F
FM
]]E
F
FM
]]&''(*
,
]]=
>
>EH]]>??@D
F
]]>??@D
F
]]>??@D
F]]JKKLN
P
]]=
>
>EH]]>??@D
F]]>??@D
F]]>??@D
F]]>??@B
D]]=
>
>E
H-$$NL/E/E/EbX__,.MNNONX-@@577SS77SX(33577X_]]__-MNNN#,#,ON77#,JCCC11111rrO__main__)8rbinasciirrr\rrrr	sysconfigr#r=rarrtest.supportrrtest.support.import_helperrrr	r
http.clientrrrCdefault_builtin_hashesget_config_varr`rrr@rr|rr"r#r$r%r	frozensetrhrLrEcheck_sanitizerrrFr5r9rGTestCaserIrOr@mainrrr<module>rs
								



((((((((::::::""""""))))))((((((%%%%%% %788ONN))*EFF+NN)//44::<<BB3GGN&%i
|DDD+++)))j\JJJOOOLLLLLLLLLLLLLDG%IKKNNNNGGG&(%g/ABB
$G#t,,,	##	M3CDD



1


 {
0{
0{
0{
0{
0h'{
0{
0{
0|{1{1{1{1{1x {1{1{1|zHMOOOOOs$.C;;DDDD'&D'