ó
    F\hs  ã                   óL   • S SK r S SKrS SKr S SKrSS jrg! \ a    Sr Nf = f)é    Nc                 ó    ^ ^^^• UU UU4S jmT$ )aÎ  Decorator raising SkipTest if a hashing algorithm is not available

The hashing algorithm could be missing or blocked by a strict crypto
policy.

If 'openssl' is True, then the decorator checks that OpenSSL provides
the algorithm. Otherwise the check falls back to built-in
implementations. The usedforsecurity flag is passed to the constructor.

ValueError: [digital envelope routines: EVP_DigestInit_ex] disabled for FIPS
ValueError: unsupported hash type md4
c                 óX  >^ • [        T [        5      (       ap  T R                  R                  S5      nUc,  U 4S jnT R                  S-   Ul        T R
                  Ul        OUR                  n[        T" U5      5      nUT l        T $ [        R                  " T 5      UU UU4S j5       nU$ )NÚ
setUpClassc                 ó"   >• [         TU ]  5         g )N)Úsuperr   )ÚclsÚfunc_or_classs    €Ú2/usr/lib/python3.13/test/support/hashlib_helper.pyr   Ú:requires_hashdigest.<locals>.decorator.<locals>.setUpClass   s   ø€ Ü˜-¨Ñ8Õ:ó    z.setUpClassc                  óÚ   >•  T(       a  [         b  [         R                  " TTS9  O[        R                  " TTS9   T" U 0 UD6$ ! [         a    [        R
                  " ST S35      ef = f)N)Úusedforsecurityzhash digest 'z' is not available.)Ú_hashlibÚnewÚhashlibÚ
ValueErrorÚunittestÚSkipTest)ÚargsÚkwargsÚ
digestnamer	   Úopensslr   s     €€€€r
   ÚwrapperÚ7requires_hashdigest.<locals>.decorator.<locals>.wrapper&   so   ø€ ðÞœxÑ3Ü—L’L ¸_ÓMä—K’K 
¸OÓLñ
 ! $Ð1¨&Ñ1Ð1øô	 ó Ü×'Ò'Ø# J <Ð/BÐCóð ðús   ƒ#A §A Á%A*)Ú
isinstanceÚtypeÚ__dict__ÚgetÚ__qualname__Ú
__module__Ú__func__Úclassmethodr   Ú	functoolsÚwraps)r	   r   r   Ú	decoratorr   r   r   s   `  €€€€r
   r%   Ú&requires_hashdigest.<locals>.decorator   sœ   ù€ Ü�m¤T×*Ñ*Ø&×/Ñ/×3Ñ3°LÓAˆJØÑ!õ;à*7×*DÑ*DÀ}Ñ*T�
Ô'Ø(5×(@Ñ(@�
Õ%à'×0Ñ0�
Ü$¡Y¨zÓ%:Ó;ˆJØ'1ˆMÔ$Ø Ð ä	�Š˜Ó	'÷
	2ó 
(ð
	2ð ˆr   © )r   r   r   r%   s   ```@r
   Úrequires_hashdigestr(      s   û€ ÷ð ð6 Ðr   )NT)r#   r   r   r   ÚImportErrorr(   r'   r   r
   Ú<module>r*      s1   ðÛ Û Û ðÛõ
(øð	 ó Ø‚Hðús   Ž ˜#¢#