Sindbad~EG File Manager
a
��gs � @ sJ d dl Z d dlZd dlZzd dlZW n ey: dZY n0 ddd�ZdS )� NTc s � ���fdd�� � S )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 s| t � t�r\� j�d�}|d u r@� fdd�}� jd |_� j|_n|j}t�|��}|� _� S t �
� ��� ��fdd��}|S )N�
setUpClassc s t � | ��� d S )N)�superr )�cls��
func_or_class� �7/usr/local/lib/python3.9/test/support/hashlib_helper.pyr s z:requires_hashdigest.<locals>.decorator.<locals>.setUpClassz.setUpClassc sb z.�rt d urt j� �d� ntj� �d� W n$ tyR t�d� � d���Y n0 �| i |��S )N)�usedforsecurityz
hash digest 'z' is not available.)�_hashlib�new�hashlib�
ValueError�unittestZSkipTest)�args�kwargs)�
digestnamer �opensslr r r �wrapper&