e$SrSSKrSSKr\R r\"\R5rSSK r\ "S\"S555r\ "S\"S555rSr"SS5rS S jrS rg!\ a SrSrSSK J r NUf=f) zqHMAC (Keyed-Hashing for Message Authentication) module. Implements the HMAC algorithm as described by RFC 2104. N)_compare_digestc#*# UH oS- v M g7f)\N.0xs */opt/imh/python3.13/lib/python3.13/hmac.py r 0Zd(Zc#*# UH oS- v M g7f)6Nrrs r r r r r cd\rSrSrSrSrSrSSjrSrSr \ S 5r S r S r S rS rSrSrg)HMACzvRFC 2104 HMAC class. Also complies with RFC 4231. This supports the API for Cryptographic Hash Functions (PEP 247). @)_hmac_inner_outer block_size digest_sizeNc[U[[45(d![S[ U5R -5eU(d [S5e[ (a/[U[[45(aURXU5 gURXU5 g![ Ra URXU5 gf=f)aCreate a new HMAC object. key: bytes or buffer, key for the keyed hash object. msg: bytes or buffer, Initial input for the hash or None. digestmod: A hash name suitable for hashlib.new(). *OR* A hashlib constructor returning a new hash object. *OR* A module supporting PEP 247. Required as of 3.8, despite its position after the optional msg argument. Passing it as a keyword argument is recommended, though not required for legacy API reasons. z,key: expected bytes or bytearray, but got %rz&Missing required argument 'digestmod'.N) isinstancebytes bytearray TypeErrortype__name__ _hashopensslstr _functype _init_hmacUnsupportedDigestmodError _init_oldselfkeymsg digestmods r __init__ HMAC.__init__&s#y122JTRUYM_M__` `DE E [R"TU5$N_hashlibnewdr+s r  HMAC._init_old..Ks Y(Br1c&>TRU5$r4r7r8s r r:r;Ms a(8r1rz:block_size of %d seems too small; using our default of %d.z[R"TU5$r4r5r9rIs r r:digest..sHLL$;r1c&>TRU5$r4r=rss r r:rts FJJqMr1rrr@rA)r!rr"r# hmac_digestr%rBgetattrrHrIrKrLrNrM)r)r*rIrOinnerouterrFs ` r rIrIsJvY7G$H$H ++Cf= = FC ; 1 ME ME|R0I 3x)#%%' 9s3x/0 0C LLx() LLx() LL LL <<>)55   sEE)(E)rg)rlwarningsrDr6r!compare_digestropenssl_sha256r# ImportError _operatorrhashlibrrangerMrNrrr7rIrr1r rs 2# "00N\001I 0U3Z0 0 0U3Z0 0 JJX%( e<LI;