a fWc/@stdZddlmZddlZddlZddlmZmZddlm Z m Z Gddde Z Gdd d e Z Gd d d e Z dS) a passlib.tests -- tests for passlib.utils.pbkdf2 .. warning:: This module & it's functions have been deprecated, and superceded by the functions in passlib.crypto. This file is being maintained until the deprecated functions are removed, and is only present prevent historical regressions up to that point. New and more thorough testing is being done by the replacement tests in ``test_utils_crypto.py``. )with_statementN)uJYTHON)TestCasehbcs<eZdZdZdZddgZgdZfddZdd ZZ S) UtilsTestztest various utils functionszpasslib.utils.pbkdf2hashlibZiana))md5r zSCRAM-MD5-PLUSzMD-5)sha1zsha-1z SCRAM-SHA-1ZSHA1)Zsha256zsha-256ZSHA_256zsha2-256)Z ripemd160z ripemd-160zSCRAM-RIPEMD-160Z RIPEmd160Zripemdz SCRAM-RIPEMD)Ztest128ztest-128ZTEST128)test2r zTEST-2)Z test3_128z test3-128z TEST-3-128cs tt|tddtdSNignorez".*passlib.utils.pbkdf2.*deprecated)superrsetUpwarningsfilterwarningsDeprecationWarningself __class__C/usr/lib/python3.9/site-packages/passlib/tests/test_utils_pbkdf2.pyr/szUtilsTest.setUpc Csddlm}ddlm}ddlm}|jD]}|d|q*|t|dd|t|dd| |t dd| |d d|t |dt tt d d |||jD]J}t|jD]:\}}||}|D]$}|||} | | |d ||fqqqWdn1s0YdS) znorm_hash_name()r)chain)norm_hash_name)_known_hash_namesmd4NZfakeZMD4sMD4r z.*unknown hashzname=%r, format=%r:) itertoolsrpasslib.utils.pbkdf2rZpasslib.crypto.digestr ndn_formats assertRaises ValueError assertEqualr TypeErrorrcatch_warningsr ndn_values enumerate) rrrrformatrowidxcorrectvalueresultrrrtest_norm_hash_name3s,        zUtilsTest.test_norm_hash_name) __name__ __module__ __qualname____doc__descriptionPrefixrr%rr- __classcell__rrrrrs  rc seZdZdZdZdeddddedfd dd dd d ed fdd ddd edfdd ddd edfdd ddd edfdd dddedfgZesedd dddedffddZ ddZ ddZ Z S) Pbkdf1_Testztest kdf helperszpasslib.utils.pbkdf2.pbkdf1()passwordZ78578E5A5D63CB06r Z dc19847e05c64d2faf10ebfb4a3d2a20)r5saltr6rr r8r Z84Z8475c6a8531a5d27Z 8475c6a8531a5d27e386cd496457812cNZ(4a8fd48e426ed081b535be5769892fa396293efbrZ f7f2e91100a8f96190f2dd177cb26453cs tt|tddtdSr )rr4rrrrrrrrrnszPbkdf1_Test.setUpc CsDddlm}|jD],\}}}}}}||||||}|||qdS)test reference vectorsrpbkdf1N)rr> pbkdf1_testsr") rr>secretsaltroundskeylendigestr*r,rrr test_knownrs zPbkdf1_Test.test_knowncsddlmdfdd }||jt|dd |jt|dd |jt|d d |jt|dd |jt|dd |jt|dd|jt|ddd|jt|dddS)test border casesrr=secretr8r:r cs|||||SNr)r@rArBrChashr=rrhelper|sz'Pbkdf1_Test.test_border..helperr@rAmissing)rIrB1rC)rCrIN)rGr8r:r:r )rr>r r#r!rrJrr=r test_borderys zPbkdf1_Test.test_border) r.r/r0r1r2rr?rappendrrErTr3rrrrr4Ss" r4csBeZdZdZdZedddddfedddd dfed ddd d fed ddd d feddddd fedddd d fedddd d fedddddfedddd dfedddddfeddddd fed!d"d#ddfed$d%ed&d'd(d)fed*d+dd,dd-fed.d+dd,d/d-fgZfd0d1Zd2d3Zd4d5Z d6d7Z d8d9Z Z S): Pbkdf2_Testztest pbkdf2() supportzpasslib.utils.pbkdf2.pbkdf2()Z cdedb5281bb2f801565a1122b2563515r5sATHENA.MIT.EDUraeburnr:r7Z 01dbee7f4a9e243e988b62c73cda935dZ@01dbee7f4a9e243e988b62c73cda935da05378b93244ec8f48a99e61ad799d86 Z@5c08eb61fdf71e4e4ec3cf6ba1f5512ba7e52ddbc5e5142f708a31e2e62b1e13iZ@d1daa78615f287e6a1c8b120d7062a493f98d203e6be49a6adf4fa574b6e64ees4VxxV4Z@139c30c0966bc32ba55fdbf212530ac9c5ec59f1a452f5cc9ad940fea0598ed1s@XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXspass phrase equals block sizeZ@9ccad6d468770cd51b10e6a68721be611a8b4d282601db3b36be9246915ec82asAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXspass phrase exceeds block sizeZ(0c60c80f961f0e71f3a9b524af6012062fe037a6r8Z(ea6c014dc72d6f8ccd1ed92ace1d41f0d8de8957Z(4b007901b765489abead49d926f721d065a429c1iZ23d2eec4fe41c849b80c8d83662c0e44a8b291a964cf2f07038spasswordPASSWORDpasswords$saltSALTsaltSALTsaltSALTsaltSALTsaltZ 56fa6aa75548099dcc37d7f03425e0c3s passwordssaltZ887CFF169EA8335235D8004242AA7D6187A41E3187DF0CE14E256D85ED97A97357AAA8FF0A3871AB9EEFF458392F462F495487387F685B7472FC6C29E293F0A0shelloZ9290F727ED06C38BA4549EF7DE25CF5642659211B7FC076F2D28FEFD71784BB8D8F6FB244A8CC5C06240631B97008565A120764C0EE9C2CB0073994D79080136i'@z hmac-sha512Z e248fb6b13365146f8ac6307cc222812rG hmac-sha1Z(e248fb6b13365146f8ac6307cc2228127872da6dNcs tt|tddtdSr )rrVrrrrrrrrr szPbkdf2_Test.setUpc Csfddlm}|jD]N}|dd\}}}}}t|dkr@|dnd}||||||} || |qdS)r<rpbkdf2NrYr^)rr`pbkdf2_test_vectorslenr") rr`r(r*r@rArBrCprfr,rrrrE s   zPbkdf2_Test.test_knowncsddlmdfdd }||jt|d d |jt|dd |jt|d d |jt|d d |jt|dd |dd |jt|dd |jt|d d |jt|dd|jt|dd|jt|dd|jt|dd|jt|dddS)rFrr_r5r8r:Nr^cs|||||SrHrr@rArBrCrdr_rrrJsz'Pbkdf2_Test.test_border..helperrPrNxrQlOrYrLrKzhmac-foordZfoo)r5r8r:Nr^)rr`r r!r# OverflowErrorNotImplementedErrorrSrr_rrTs   zPbkdf2_Test.test_bordercsJddlmdfdd }|t|dd d |t|d d d dS)ztest keylen==Nonerr_r5r8r:Nr^cs|||||SrHrrer_rrrJ5sz/Pbkdf2_Test.test_default_keylen..helperrgrZz hmac-sha256rX)r5r8r:Nr^)rr`r"rcrSrr_rtest_default_keylen2s zPbkdf2_Test.test_default_keylenc Cs.ddlm}dd}|t|dddd|d S) ztest custom prf functionrr_cSst||dS)Nsfooey)rr rD)keymsgrrrrd=sz(Pbkdf2_Test.test_custom_prf..prfrGr8r6rZN)rr`r ri)rr`rdrrrtest_custom_prf:s zPbkdf2_Test.test_custom_prf) r.r/r0r1r2rrbrrErTrjrmr3rrrrrVsr      r  rV)r1Z __future__rrrZpasslib.utils.compatrrZpasslib.tests.utilsrrrr4rVrrrrs 7@