HEX
Server: Apache
System: Linux box5514.bluehost.com 5.14.0-162.23.1.9991722448259.nf.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jul 31 18:11:45 UTC 2024 x86_64
User: smqcdvmy (3893)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: //lib/python3.9/site-packages/oci/__pycache__/fips.cpython-39.opt-1.pyc
a

���f��@sjddlmZddlZddlZddlZddlZGdd�d�Zdd�Zddd	�Zd
d�Z	dd
�Z
ddd�ZdS)�)�absolute_importNc@seZdZdZdd�ZdS)�DevNullza
    Simple class to supress errors which may occur when importing hashlib
    in FIPS mode.
    cCsdS)N�)�self�msgrr�,/usr/lib/python3.9/site-packages/oci/fips.py�writesz
DevNull.writeN)�__name__�
__module__�__qualname__�__doc__rrrrrrsrcCs8t�|�}|�t�d��ddl}t|d�s4|j|_dS)zQ
    Override libcrypto and add FIPS_mode function to ssl if it is not there
    �rN�	FIPS_mode)�ctypesZCDLLZ
FIPS_mode_setZc_int�ssl�hasattrr)�fips_libcrypto_pathZ
_bs_cryptorrrr�override_libcryptos


r�cCstd��dS)zm
    Placeholder md5 function for hashlib so it won't segfault when called after
    enabling FIPS mode.
    zmd5 disabled for fipsN)�
ValueError)Zintitial_messagerrr�md5!src	CsBtj}zt�t_ddl}Wnttfy0Yn0|t_t|_dS)z�
    hashlib.md5 is imported by urllib3, which is required by requests,
    which is used by oci (python sdk).  This will cause errors so we need to
    patch hashlib.
    rN)�sys�stderrr�hashlib�RuntimeErrorrr)rrrrr�patch_hashlib_md5*srcCsZddl}ddl}t|d�sdS|��dkr.dSz|�d���}WdStyTYn0dS)zZ
    Verify that ssl.FIPS_mode() returns 1 and that using md5 raises an
    exception
    rNrFr
�Hello World
T)rrrrr�	hexdigestr)rr�digestrrr�is_fips_mode;s
rcCs�t�d�ttt���}|�t���|sRdtj	vr>tj	d}ndtj	vrRtj	d}|r�t
|�ddl}z|�d��
�}t�Wnty�Yn0|�d�|��t�r�|�d�n
|�d	�dS)
zG
    Enable FIPS mode by overriding libcrypto and patching hashlib
    z{}.{}ZFIPS_LIBCRYPTO_PATHZ"OCI_PYTHON_SDK_FIPS_LIBCRYPTO_PATHrNrzUsing '{}' for libcyptozFIPS mode is activezFailed to enter FIPS mode)�loggingZ	getLogger�formatr	�id�enable_fips_modeZ
addHandlerZNullHandler�os�environrrrrrr�infor�error)r�loggerrrrrrr#Ss&



r#)r)N)Z
__future__rrrr r$rrrrrr#rrrr�<module>s