}Lm SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKJrJ r SSK J r SSK rSSK Jr SSK Jr SSK Jr SSKrSr"SS \R25r"S S \R25r"S S \R25r"SS\R25r"SS\R25r"SS\R25r\ S:Xa\RB"5 gg!\a SrSrSrSrNf=f!\a SrNf=f)N)hashlib_helpercheck_disallow_instantiation)_compare_digest)HMAC)hmac_new)compare_digestcF^[R"T5U4Sj5nU$)Nc>[R"5 [R"S[S9 T"U0UD6sSSS5 $!,(df  g=f)Nignore)category)warningscatch_warningsfilterwarningsDeprecationWarning)argskwargsfuncs 5/opt/alt/python313/lib64/python3.13/test/test_hmac.pywrapperignore_warning..wrappers<  $ $ &  # #H-? A((' & &s !A A) functoolswraps)rrs` rignore_warningrs%__T)) Ncv\rSrSrSrSr\R"SSS9S5r\R"SSS9S 5r S r \R"S SS9S 5r \R"S SS9S5r \R"SSS9S5r \R"SSS9S5r\R"S 5S5rSrSrSrg)TestVectorsTestCase(cURUR5R5UR55 URUR5[R "U55 URUR SU35 URURU5 URURU5 g)Nzhmac-) assertEqual hexdigestupperdigestbinascii unhexlifyname digest_size block_size)selfhr"hashnamer&r's rassert_hmac_internals)TestVectorsTestCase.assert_hmac_internals*s ,,. ? X%7%7%?@ 5 !34  4 z2rc[R"XUS9nURXXVU5 [R"XUS9nURXXVU5 [R"XS9nUR5n U R S5 UR U5 UR UR 5R5UR55 [R"XUS9nURXXVU5 [R"USUS9nUR U5 UR UR 5R5UR55 [R"XS9nUR U5 UR UR 5R5UR55 [R"XUS9nUR UR 5R5UR55 UR [R"XUS9[R"U55 UR [R"XUS9[R"U55 [RR[R5nURXUS9 URXXVU5 [Gb[XUS9nURXXVU5 [XS9nUR5n U R S5 UR U5 UR UR 5R5UR55 [[ SU35n [XU S9nURXXVU5 [RR[R5nUR#XUS9 URXXVU5 gg)N digestmods test update)r"openssl_)hmacrr+copyupdaterr r!newr"r#r$__new__ _init_old c_hmac_newgetattr _hashopenssl _init_hmac) r(keydatar"hashfuncr*r&r'r)h2rs r assert_hmacTestVectorsTestCase.assert_hmac3s  IIc8 4 "" xj  IIc8 4 "" xj  IIc . VVX .!  ,,. ? HHS( 3 "" xj  HHS$( 3  ,,. ? HHS -  ,,. ? HHS( 3 ,,. ?  KK( 3   v &   KK( 3   v & II  dii ( C 2 "" xj   !39A  & &8* 33AB IIn % HHTN   Q[[]002FLLN C<8H:)>?D35A  & &8*  !!$)),A LLhL 7  & &8* ) "rmd5T)opensslc^U4SjnU"SSS5 U"SSS5 U"SS S 5 U"[[S S 55S S5 U"SSS5 U"SSS5 U"SSS5 g)Nc J>TRXU[RSSSS9 g)NrA@r=r*r&r')r?hashlibrAr;r<r"r(s rmd5test5TestVectorsTestCase.test_md5_vectors..md5tests+   6   r Hi There 9294727A3638BB1C13F48EF8158BFC9DJefewhat do ya want for nothing? 750c783e6ab0b503eaa86e310a5db738s2 56be34521d144c88dbb8c733f0e8b3f62 697eaf0aca3a3aea3a75164746ffaa79s Test With Truncation 56461ef2342edc00f9bab995690efd4cP6Test Using Larger Than Block-Size Key - Hash Key First 6b1ab7fe4bd7bf8f0b62e6ce61b9d0cdITest Using Larger Than Block-Size Key and Larger Than One Block-Size Data 6f630fad67cda0ee1fb1f562db3aa53ebytesrange)r(rJs` rtest_md5_vectors$TestVectorsTestCase.test_md5_vectors}s   2 4 /2 4  2 4 eArl#2 4  '2 4  I2 4  82 4rsha1c^U4SjnU"SSS5 U"SSS5 U"SS S 5 U"[[S S 55S S5 U"SSS5 U"SSS5 U"SSS5 g)Nc J>TRXU[RSSSS9 g)NrdrFrG)r?rHrdrIs rshatest5TestVectorsTestCase.test_sha_vectors..shatests+   6   r rM(b617318655057264e28bc0b6fb378c8ef146be00rOrP(effcdf6ae5eb2fa2d27416d5f184df9c259a7c79rR(125d7342b9ac11cd91a39af48aa17b4f63f175d3rTrUrV(4c9007f4026250c6bc8414f9bf50c86c2d7235das rX(4c1a03424b55e07fe7f27be1d58bb9324a9a5a04rZr[(aa4ae5e15272d00e95705637ce8a3b55ed402112r](e8e99d0f45237d786d6bbaa7965c7808bbff1a91r_)r(rhs` rtest_sha_vectors$TestVectorsTestCase.test_sha_vectorss   : < /: <  : < eArl#: <  ': <  I: <  8: UTnTRXUTTTTS9 g)NrG)r?) r;r< hexdigestsr"r'r& hash_namer=r(s rhmactest9TestVectorsTestCase._rfc4231_test_cases..hmactests1)F   6!"'%  rrjrM8896fb1128abbdf196832107cd49df33f47b4b1169912ba4f53684b22@b0344c61d8db38535ca8afceaf0bf12b881dc200c9833da726e9376c2e32cff7`afd03944d84895626b0825f4ab46907f15f9dadbe4101ec682aa034c7cebc59cfaea9ea9076ede7f4af152e8b2fa9cb6ڀ87aa7cdea5ef619d4ff0b4241a1d6cb02379f4e2ce4ec2787ad0b30545e17cdedaa833b7d6b8a702038b274eaea3f4e4be9d914eeb61f1702e696c203a126854)r;r<rwrOrP8a30e01098bc6dbbf45690f3a7e9e6d0f8bbea2a39e6148008fd05e44@5bdcc146bf60754e6a042426089575c75a003f089d2739839dec58b964ec3843`af45d2e376484031617f78d2b58a6b1b9c7ef464f5a01b47e42ec3736322445e8e2240ca5e69e2c78b3239ecfab21649ڀ164b7a7bfcf819e2e395fbe73b56e0a387bd64222e831fd610270cd7ea2505549758bf75c05a994a6d034f65f8f0e6fdcaeab1a34d4a6b4b636e070a38bce737rmrR87fb3cb3588c6c1f6ffa9694d7d6ad2649365b0c1f65d69d1ec8333ea@773ea91e36800e46854db8ebd09181a72959098b3ef8c122d9635514ced565fe`88062608d3e6ad8a0aa2ace014c8a86f0aa635d947ac9febe83ef4e55966144b2a5ab39dc13814b94e3ab6e101a34f27ڀfa73b0089d56a284efb0f0756c890be9b1b5dbdd8ee81a3655f83e33b2279d39bf3e848279a722c806b485a47e67c807b946a337bee8942674278859e13292fbc3$# UHov M g7fN).0xs r :TestVectorsTestCase._rfc4231_test_cases..s<(;1Q(;srTrUrV86c11506874013cac6a2abc1bb382627cec6a90d86efc012de7afec5a@82558a389a443c0ea4cc819899f2083a85f0faa3e578f8077a2e3ff46729665b`3e8a69b7783c25851933ab6290af6ca77a9981480850009cc5577c6e1f573b4e6801dd23c4a7d679ccf8a386c674cffbڀb0ba465637458c6990e5a8c5f61d4af7e576d97ff94b872de76f8050361ee3dba91ca5c11aa25eb4d679275cc5788063a5f19741120c4f2de2adebeb10a298ddsr[895e9a0db962095adaebe9b2d6f0dbce2d499f112f2d2b7273fa6870e@60e431591ee0b67f0d8a26aacbf5b77f8e0bc6213728c5140546040f0ee37f54`4ece084485813e9088d2c63a041bc5b44f9ef1012a2b588f3cd11f05033ac4c60c2ef6ab4030fe8296248df163f44952ڀ80b24263c7c1a3ebb71493c1dd7be8b49b46d1f41b4aeec1121b013783f8f3526b56d037e05f2598bd0fd2215d6a1e5295e64f73f63f0aec8b915a985d786598sThis is a test using a larger than block-size key and a larger than block-size data. The key needs to be hashed before being used by the HMAC algorithm.83a854166ac5d9f023f54d517d0b39dbd946770db9c2b95c9f6f565d1@9b09ffa71b942fcb27635fbcd5b0e944bfdc63644f0713938a7f51535c3a35e2`6617178e941f020d351e2f254e8fd32c602420feb0b8fb9adccebb82461e99c5a678cc31e799176d3860e6110c46523eڀe37b6a775dc87dbaa4dfa9f96e5e3ffddebd71f8867289865df5a32d20cdc944b6022cac3c4982b10d5eeb55c3e4de15134676fb6de0446065c97440fa8c6a58)rHsha224sha256sha384sha512r`ra)r(r=rxr&r'rys````` r_rfc4231_test_cases'TestVectorsTestCase._rfc4231_test_casess   z#>>$>>>$F>>$F>>$F  " w7>>$>>>$F>>$F>>$F  " z">>$>>>$F>>$F>>$F  " u<dF(;<<">>$>>>$F>>$F>>$F  " {2>>$>>>$F>>$F>>$F  $ {4 >>$>>>$F>>$F>>$F   rrcHUR[RSSS5 g)NrrF)rrHrr(s rtest_sha224_rfc4231'TestVectorsTestCase.test_sha224_rfc4231F   2rBrrcHUR[RSSS5 g)Nr rF)rrHrrs rtest_sha256_rfc4231'TestVectorsTestCase.test_sha256_rfc4231JrrrcHUR[RSSS5 g)Nr0)rrHrrs rtest_sha384_rfc4231'TestVectorsTestCase.test_sha384_rfc4231N   2sCrrcHUR[RSSS5 g)NrrFr)rrHrrs rtest_sha512_rfc4231'TestVectorsTestCase.test_sha512_rfc4231Rrrc"SS[5n[R"5 [R"S[5 UR [5 [ R"SSUS9 URS5 SSS5 SUl UR [5 [ R"SSUS9 URS 5 SSS5 SSS5 g!,(df  Nc=f!,(df  N(=f!,(df  g=f) Nc&\rSrSrSrSrSrSrg)JTestVectorsTestCase.test_legacy_block_size_warnings..MockCrazyHashiXcj[R"U6UlURRUlgr)rHr_xr&)r(rs r__init__STestVectorsTestCase.test_legacy_block_size_warnings..MockCrazyHash.__init__Zs$!..$/#'77#6#6 rc:URRU5 gr)rr3)r(vs rr3QTestVectorsTestCase.test_legacy_block_size_warnings..MockCrazyHash.update]sq!rc6URR5$r)rr"rs rr"QTestVectorsTestCase.test_legacy_block_size_warnings..MockCrazyHash.digest_sww~~''r)rr&N)__name__ __module__ __qualname____firstlineno__rr3r"__static_attributes__rrr MockCrazyHashrXs 7 " (rrerrorabr.z)Expected warning about missing block_sizerTz'Expected warning about small block_size) objectr r simplefilterRuntimeWarning assertRaisesr1rfailr')r(rs rtest_legacy_block_size_warnings3TestVectorsTestCase.test_legacy_block_size_warningsVs (F ( $ $ &  ! !'> :"">2 $ > EF3()M $"">2 $ > CD3' &22 32' &s;1C=(C>$C="(C, C= C) %C=, C: 6C== D cUR[S5 SnSn[R"XSS9 SSS5 UR[S5 [R"WW5 SSS5 UR[S5 [R"WWSS9 SSS5 g!,(df  Nz=f!,(df  NU=f!,(df  g=f)Nzrequired.*digestmodrLrMr.)msgr/)assertRaisesRegex TypeErrorr1rr4)r(r;r<s rtest_with_digestmod_no_default2TestVectorsTestCase.test_with_digestmod_no_defaultms  # #I/E FCD IIc4 0G # #I/E F HHS$ G  # #I/E F IIctr 2G F G FG F F Fs#B%B6C% B36 C Cc [[S5n[RUS'[R"SSS5R 5nSnUR X#5 URS5 g!URS5 f=f)N__builtin_constructor_cachefookeysmessage@6e9ef29b75fffc5b7abae527d58fdadb2fe42e7219011976917343065f58ed4a)r8rHrr1r"hexrpop)r(cacher expecteds rtest_with_fallback&TestVectorsTestCase.test_with_fallbackxsh!>? ">>E%L FJ>BBDIYH   Y 1 IIe EIIe s A A00BrN)rrrrr+r?rrequires_hashdigestrbrsrrrrrrrrrrrrrr(s3HT''t<'4='4R''=%<>% d2NCDDDrrcD\rSrSr\R "S5S5rSrg)SanityTestCaseirc[R"SSS9nURS5 UR5 UR 5 UR 5 g![ a URS5 gf=f)Ns my secret keyrr.scompute the hash of this text!z3Exception raised during normal usage of HMAC class.)r1rr3r"r r2rrrs rtest_exercise_all_methods(SanityTestCase.test_exercise_all_methodss_ M *h?A HH6 7 HHJ KKM FFH M IIK L MsAAA76A7rN)rrrrrrrrrrrr r s!''1 M2 Mrr cD\rSrSr\R "S5S5rSrg)UpdateTestCaseircUR[5 [R"SSS9nUR S5 SSS5 g!,(df  g=f)Nrrr.zinvalid update)rrr1r4r3rs rtest_with_str_update#UpdateTestCase.test_with_str_updates9   y )84A HH% &* ) )s 'A ArN)rrrrrrrrrrrrrs''1'2'rrc4\rSrSr\R "S5S5r\R "S5S5r\R"\ SLS5\R "S5S55r \R "S5S5r \R "S5S 5r S rg) CopyTestCaseirc[RR[R5nURSSSS9 UR 5nUR [ UR5[ UR5S5 UR [ UR5[ UR5S5 g)Nrmsgrr.zTypes of inner don't match.zTypes of outer don't match.) r1rr5r6r2rtype_inner_outerr(h1r>s rtest_attributes_old CopyTestCase.test_attributes_oldsYY  tyy ) VVx 8 WWY bii$ryy/ ) + bii$ryy/ ) +rc[RR[R5nURSSSS9 UR 5nUR [ U5[ U5:gS5 UR [ UR5[ UR5:gS5 UR [ UR5[ UR5:gS5 URURS5 g)Nrrrr."No real copy of the HMAC instance.z&No real copy of the attribute 'inner'.z&No real copy of the attribute 'outer'.) r1rr5r6r2 assertTrueidrrassertIs_hmacrs rtest_realcopy_oldCopyTestCase.test_realcopy_oldsYY  tyy ) VVx 8 WWY 2"R&(*NO 299 BII6 4 6 299 BII6 4 6 bhh%rNztest requires _hashopensslc[RR[R5nURSSSS9 UR 5nUR [ UR5[ UR5:g5 g)Nrrrr.)r1rr5r:r2r#r$r&rs rtest_realcopy_hmacCopyTestCase.test_realcopy_hmacsZYY  tyy ) ff 9 WWY 288 288 45rc,[R"SSS9nURS5 UR5nUR UR 5UR 5S5 UR UR 5UR 5S5 g)Nrrr.some random text-Digest of copy doesn't match original digest.3Hexdigest of copy doesn't match original hexdigest.)r1rr3r2rr"r rs r test_equalityCopyTestCase.test_equality soYYv 2 %& WWY biik ; =  A Crcz[R"SSS9nURS5 UR5nUR [ U5[ U5:gS5 UR UR5UR5S5 UR UR5UR5S5 g)Nrrr.r-r"r.r/) r1r4r3r2r#r$rr"r rs rtest_equality_newCopyTestCase.test_equality_newsXXf 1 %& WWY  rFbf B  biik ; =  A Crr)rrrrrrrr'r skipIfr9r*r0r3rrrrrrs''1+2+''1 &2 &__\T)+GH''162I6 ''1C2C''1 C2 Crrc\\rSrSrSrSr\R"\SLS5S5r Sr Sr g) CompareDigestTestCasei'cUR[R5 [b%UR [R[5 gUR [R[ 5 gr)_test_compare_digestr1ropenssl_compare_digestr%operator_compare_digestrs rtest_hmac_compare_digest.CompareDigestTestCase.test_hmac_compare_digest)sF !!$"5"56 ! - MM$--/E F MM$--/F Grc.UR[5 gr)r9r;rs rtest_operator_compare_digest2CompareDigestTestCase.test_operator_compare_digest0s !!"9:rNztest requires _hashlibc.UR[5 gr)r9r:rs rtest_openssl_compare_digest1CompareDigestTestCase.test_openssl_compare_digest3s !!"89rcVSup#UR[XU5 Sup#UR[XU5 Sup#UR[XU5 Sup#UR[XU5 Sup#UR[XU5 Sup#URU"X#55 Sup#URU"X#55 Sup#URU"X#55 S up#URU"X#55 S up#URU"X#55 S up#URU"X#55 [ S 5[ S 5p2URU"X#55 [ S 5[ S 5p2URU"X#55 [ S 5[ S5p2URU"X#55 [ S 5S p2URU"X#55 URU"X255 [ S 5S p2URU"X#55 URU"X255 [ S 5Sp2URU"X#55 URU"X255 Sup#URU"X#55 Sup#URU"X#55 Sup#URU"X#55 Sup#UR[XU5 Sup#UR[XU5 Sup#UR[XU5 Sup#UR[XU5 Sup#UR[XU5 "SS[ 5nU"S5U"S5p2URU"X#55 U"S5Sp2URU"X#55 U"S5U"S5p2URU"X#55 "SS[ 5nU"S 5U"S 5p2URU"X#55 U"S 5S p2URU"X#55 U"S 5U"S5p2URU"X#55 g)N)d)rEfoobar)rGrF)foobarrG)rGrH)rGfoo)ޭsޭ)rGfoobaz)rJs)rGrG)rJrJrGrIrK)rHrH)rrH)rHfoobaz)rGrT)fooärMc\rSrSrSrSrg)9CompareDigestTestCase._test_compare_digest..mystricgNFrr(others r__eq__@CompareDigestTestCase._test_compare_digest..mystr.__eq__rrNrrrrrTrrrrmystrrO rrXrHrLc\rSrSrSrSrg);CompareDigestTestCase._test_compare_digest..mybytesicgrQrrRs rrTBCompareDigestTestCase._test_compare_digest..mybytes.__eq__rVrrNrWrrrmybytesr[rYrr^)rr assertFalser#rstrr`)r(rabrXr^s rr9*CompareDigestTestCase._test_compare_digest7s )^: )^: )^:" )^:" )^:! -./ -.$ -.7 -.$ q,-7 q,-#Yy%91 q,-#Yv%61 -.#Yy%91 -.#Y1 q,- q,-#V1 -. -.#Y1 -. -." q,- -." -.# )^:" )^: )^: )^: )^: C Xh1 q,-X1 q,-Xh1 -. e y!79#51 q,-y!91 q,-y!79#51 -.rr) rrrrr<r?r r5r:rBr9rrrrr7r7's:H;__+t35MN:O:g/rr7__main__)"r#rr1rHr  unittest.mockr test.supportrr _operatorrr;_hashlibr9rrrr7rr: ImportError_sha256rrTestCaserrr rrr7rmainrrrrms E@ "#'/A# X(++Xv LD(++LD^ MX&& M 'X&&':C8$$:Czw/H--w/t z MMO_"L FJ! "Ms#C!C5!C21C25D?D