File: //var/opt/nydus/ops/oscrypto/__pycache__/trust_list.cpython-39.pyc
a
�,�h4 � @ sZ d dl mZmZmZmZ d dlZd dlZd dlZd dlZd dl Z ddl
mZmZ ddl
mZ ddlmZ ejdkr�ddlmZmZ n,ejd kr�ddlmZmZ nddlmZmZ g d
�Ze �� Ze �� Zddd�Zedg�ed
g�edg�edg�eddg�eddg�eg d��d�Zd%dd�Zd&dd�Zd'dd�Z d(dd�Z!dd � Z"d!d"� Z#d#d$� Z$dS ))� )�unicode_literals�division�absolute_import�print_functionN� )�armor�Certificate)�pretty_message)�CACertsError�win32)�extract_from_system�system_path�darwin)�clear_cache�get_list�get_path)�last_update�certsz1.3.6.1.5.5.7.3.4z1.3.6.1.5.5.7.3.3z1.3.6.1.5.5.7.3.8�1.3.6.1.5.5.7.3.1z1.3.6.1.5.5.7.3.2z1.3.6.1.5.5.7.3.13z1.3.6.1.5.5.7.3.14)z1.3.6.1.5.5.7.3.5z1.3.6.1.5.5.7.3.6z1.3.6.1.5.5.7.3.7z1.3.6.1.5.5.7.3.17)z1.2.840.113635.100.1.8z1.2.840.113635.100.1.16z1.2.840.113635.100.1.20z1.3.6.1.4.1.311.10.3.2�1.2.840.113635.100.1.3z1.2.840.113635.100.1.9z1.2.840.113635.100.1.11� c
C s� t | �\}}|�r�t||��r�t� }d}d}d}t��d t||��r�t|d���*} t|d�D �]\}
}}tjdkr�||kr�||vr�||vr�|r\|t� |
�d� q\||kr�||v s�||v r�|r\|t� |
�d� q\nttjd k�rD||k�r||v�r||v�r|r\|t� |
�d� q\||k�rD||v �s.||v �rD|r\|t� |
�d� q\|�rZ|t� |
�d
� | �
td|
�� q\W d
� n1 �s�0 Y W d
� n1 �s�0 Y |�s�td��|S )
a�
Get the filesystem path to a file that contains OpenSSL-compatible CA certs.
On OS X and Windows, there are extracted from the system certificate store
and cached in a file on the filesystem. This path should not be writable
by other users, otherwise they could inject CA certs into the trust list.
:param temp_dir:
The temporary directory to cache the CA certs in on OS X and Windows.
Needs to have secure permissions so other users can not modify the
contents.
:param cache_length:
The number of hours to cache the CA certs on OS X and Windows
:param cert_callback:
A callback that is called once for each certificate in the trust store.
It should accept two parameters: an asn1crypto.x509.Certificate object,
and a reason. The reason will be None if the certificate is being
exported, otherwise it will be a unicode string of the reason it won't.
This is only called on Windows and OS X when passed to this function.
:raises:
oscrypto.errors.CACertsError - when an error occurs exporting/locating certs
:return:
The full filesystem path to a CA certs file
z2.5.29.37.0r r �wbTr zimplicitly distrusted for TLSzexplicitly distrusted for TLSr N�CERTIFICATEzNo CA certs found)
�_ca_path�_cached_path_needs_update�set� path_lock�openr �sys�platformr �load�writer r
)
�temp_dir�cache_length�
cert_callback�ca_path�tempZ empty_setZany_purposeZ apple_sslZwin_server_auth�f�cert�
trust_oids�reject_oids� r+ �D/opt/nydus/tmp/pip-target-wkfpz8uv/lib/python/oscrypto/trust_list.pyr A sT
����Rr Tc C s� t | �s�t�n t | �slg }t|�D ]4\}}}|r@t|�}t|�}|�t�|�||f� q"|td<