HEX
Server: Apache
System: Linux p3plzcpnl506847.prod.phx3.secureserver.net 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: slfopp7cb1df (5698090)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/python38/lib/python3.8/site-packages/setuptools/__pycache__/ssl_support.cpython-38.pyc
U

�i�__!�@s�ddlZddlZddlZddlZddlZddlmZmZmZm	Z	ddl
mZmZzddl
Z
Wnek
rtdZ
YnXdddddgZd	����ZzejjZejZWnek
r�eZZYnXe
dk	o�eeefkZzdd
l
mZmZWnRek
�r:zddlmZddlmZWnek
�r4dZdZYnXYnXe�sRGd
d�de�Ze�sjddd�Zdd�ZGdd�de�ZGdd�de�Zd dd�Z dd�Z!e!dd��Z"dd�Z#dd�Z$dS)!�N)�urllib�http_client�map�filter)�ResolutionError�ExtractionError�VerifyingHTTPSHandler�find_ca_bundle�is_available�
cert_paths�
opener_fora
/etc/pki/tls/certs/ca-bundle.crt
/etc/ssl/certs/ca-certificates.crt
/usr/share/ssl/certs/ca-bundle.crt
/usr/local/share/certs/ca-root.crt
/etc/ssl/cert.pem
/System/Library/OpenSSL/certs/cert.pem
/usr/local/share/certs/ca-root-nss.crt
/etc/ssl/ca-bundle.pem
)�CertificateError�match_hostname)r
)rc@seZdZdS)r
N)�__name__�
__module__�__qualname__�rr�:/tmp/pip-unpacked-wheel-tlqm5ymo/setuptools/ssl_support.pyr
6sr
�c
Cs�g}|sdS|�d�}|d}|dd�}|�d�}||krLtdt|���|s`|��|��kS|dkrt|�d�n>|�d	�s�|�d	�r�|�t�|��n|�t�|��	d
d��|D]}|�t�|��q�t�
dd
�|�dtj�}	|	�
|�S)zqMatching according to RFC 6125, section 6.4.3

        https://tools.ietf.org/html/rfc6125#section-6.4.3
        F�.rrN�*z,too many wildcards in certificate DNS name: z[^.]+zxn--z\*z[^.]*z\Az\.z\Z)�split�countr
�repr�lower�append�
startswith�re�escape�replace�compile�join�
IGNORECASE�match)
�dn�hostnameZ
max_wildcardsZpats�partsZleftmost�	remainder�	wildcards�frag�patrrr�_dnsname_match<s,


�r+cCs�|std��g}|�dd�}|D]*\}}|dkr t||�r@dS|�|�q |s�|�dd�D]6}|D],\}}|dkrdt||�r�dS|�|�qdq\t|�dkr�td	|d
�tt|��f��n*t|�dkr�td||df��ntd
��dS)a=Verify that *cert* (in decoded format as returned by
        SSLSocket.getpeercert()) matches the *hostname*.  RFC 2818 and RFC 6125
        rules are followed, but IP addresses are not accepted for *hostname*.

        CertificateError is raised on failure. On success, the function
        returns nothing.
        zempty or no certificate�subjectAltNamer�DNSN�subject�
commonNamerz&hostname %r doesn't match either of %sz, zhostname %r doesn't match %rrz=no appropriate commonName or subjectAltName fields were found)	�
ValueError�getr+r�lenr
r!rr)�certr%�dnsnames�san�key�value�subrrrrrs>

��
���rc@s eZdZdZdd�Zdd�ZdS)rz=Simple verifying handler: no auth, subclasses, timeouts, etc.cCs||_t�|�dS�N)�	ca_bundle�HTTPSHandler�__init__)�selfr:rrrr<�szVerifyingHTTPSHandler.__init__cs���fdd�|�S)Ncst|�jf|�Sr9)�VerifyingHTTPSConnr:)�host�kw�r=rr�<lambda>��z2VerifyingHTTPSHandler.https_open.<locals>.<lambda>)�do_open)r=�reqrrAr�
https_open�s
�z VerifyingHTTPSHandler.https_openN)rrr�__doc__r<rFrrrrr�sc@s eZdZdZdd�Zdd�ZdS)r>z@Simple verifying connection: no auth, subclasses, timeouts, etc.cKstj||f|�||_dSr9)�HTTPSConnectionr<r:)r=r?r:r@rrrr<�szVerifyingHTTPSConn.__init__cCs�t�|j|jft|dd��}t|d�rHt|dd�rH||_|��|j}n|j}tt	d�rxt	j
|jd�}|j||d�|_nt	j|t	j
|jd�|_zt|j��|�Wn.tk
r�|j�tj�|j���YnXdS)N�source_address�_tunnel�_tunnel_host�create_default_context)�cafile)�server_hostname)�	cert_reqs�ca_certs)�socket�create_connectionr?�port�getattr�hasattr�sockrJrK�sslrLr:�wrap_socket�
CERT_REQUIREDr�getpeercertr
�shutdown�	SHUT_RDWR�close)r=rV�actual_host�ctxrrr�connect�s.

�
�
zVerifyingHTTPSConn.connectN)rrrrGr<r`rrrrr>�sr>cCstj�t|pt���jS)z@Get a urlopen() replacement that uses ca_bundle for verification)r�request�build_openerrr	�open)r:rrrr�s�cst����fdd��}|S)Ncst�d�s�||��_�jS)N�always_returns)rUrd)�args�kwargs��funcrr�wrapper�s
zonce.<locals>.wrapper)�	functools�wraps)rhrirrgr�once�srlcsZzddl}Wntk
r"YdSXG�fdd�d|j����}|�d�|�d�|jS)Nrcs,eZdZ��fdd�Z��fdd�Z�ZS)z"get_win_certfile.<locals>.CertFilecst�|���t�|j�dSr9)�superr<�atexit�registerr]rA��CertFile�	__class__rrr<�sz+get_win_certfile.<locals>.CertFile.__init__cs,zt�|���Wntk
r&YnXdSr9)rmr]�OSErrorrArprrr]�sz(get_win_certfile.<locals>.CertFile.close)rrrr<r]�
__classcell__r�rq)rrrrq�srq�CA�ROOT)�wincertstore�ImportErrorrqZaddstore�name)rxZ	_wincertsrrur�get_win_certfile�s

r{cCs$ttjjt�}t�p"t|d�p"t�S)z*Return an existing CA bundle path, or NoneN)r�os�path�isfilerr{�next�_certifi_where)Zextant_cert_pathsrrrr	�s��c
Cs.ztd���WStttfk
r(YnXdS)N�certifi)�
__import__�whereryrrrrrrr�sr�)r)N)%r|rQrnrrjZsetuptools.extern.six.movesrrrr�
pkg_resourcesrrrWry�__all__�striprrrar;rH�AttributeError�objectr
r
rZbackports.ssl_match_hostnamer0r+rr>rrlr{r	r�rrrr�<module>s`
�

�
6*(