HEX
Server: LiteSpeed
System: Linux standart9.isimtescil.net 3.10.0-962.3.2.lve1.5.26.7.el7.x86_64 #1 SMP Wed Oct 2 07:53:12 EDT 2019 x86_64
User: karalev (5310)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: //opt/alt/python35/lib/python3.5/site-packages/setuptools/__pycache__/ssl_support.cpython-35.pyc


i�Re �"@sBddlZddlZddlZddlZddlZddlmZmZmZm	Z	ddl
mZmZyddl
Z
Wnek
r�dZ
YnXdddddgZd	j�j�ZyejjZejZWnek
r�eZZYnXe
dk	oeeefkZydd
l
mZmZWnWek
r�y$ddlmZddlmZWnek
r�dZdZYnXYnXes�Gd
d�de�Zes�ddd�Zdd�ZGdd�de�ZGdd�de�Zddd�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@seZdZdS)r
N)�__name__�
__module__�__qualname__�rr�/ssl_support.pyr
5sr
�c
CsUg}|sdS|jd�}|d}|dd�}|jd�}||krjtdt|���|s�|j�|j�kS|dkr�|jd�nY|jd	�s�|jd	�r�|jtj|��n"|jtj|�j	d
d��x$|D]}|jtj|��qWtj
dd
j|�dtj�}	|	j
|�S)zpMatching according to RFC 6125, section 6.4.3

        http://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)
Zdn�hostnameZ
max_wildcardsZpats�partsZleftmostZ	remainderZ	wildcardsZfrag�patrrr�_dnsname_match;s*
"
&r'cCsO|std��g}|jdf�}x@|D]8\}}|dkr1t||�r\dS|j|�q1W|s�x]|jdf�D]I}x@|D]8\}}|dkr�t||�r�dS|j|�q�Wq�Wt|�dkrtd|d	jtt|��f��n;t|�dkr?td
||df��ntd��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 certificateZsubjectAltNameZDNSNZsubjectZ
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)Zcertr$ZdnsnamesZsan�key�value�subrrrros.%rc@s.eZdZdZdd�Zdd�ZdS)rz=Simple verifying handler: no auth, subclasses, timeouts, etc.cCs||_tj|�dS)N)�	ca_bundle�HTTPSHandler�__init__)�selfr.rrrr0�s	zVerifyingHTTPSHandler.__init__cs�j�fdd�|�S)Ncst|�j|�S)N)�VerifyingHTTPSConnr.)�host�kw)r1rr�<lambda>�sz2VerifyingHTTPSHandler.https_open.<locals>.<lambda>)Zdo_open)r1Zreqr)r1r�
https_open�sz VerifyingHTTPSHandler.https_openN)rrr�__doc__r0r6rrrrr�sc@s.eZdZdZdd�Zdd�ZdS)r2z@Simple verifying connection: no auth, subclasses, timeouts, etc.cKs tj|||�||_dS)N)�HTTPSConnectionr0r.)r1r3r.r4rrrr0�szVerifyingHTTPSConn.__init__cCs�tj|j|jft|dd��}t|d�rjt|dd�rj||_|j�|j}n	|j}t	j
|dt	jd|j�|_yt
|jj�|�Wn5tk
r�|jjtj�|jj��YnXdS)N�source_address�_tunnel�_tunnel_hostZ	cert_reqsZca_certs)�socket�create_connectionr3�port�getattr�hasattr�sockr:r;�sslZwrap_socketZ
CERT_REQUIREDr.rZgetpeercertr
�shutdown�	SHUT_RDWR�close)r1rAZactual_hostrrr�connect�s$!	
	

zVerifyingHTTPSConn.connectN)rrrr7r0rFrrrrr2�sr2cCs"tjjt|pt���jS)z@Get a urlopen() replacement that uses ca_bundle for verification)r�requestZbuild_openerrr	�open)r.rrrr�s	cs%tj���fdd��}|S)Ncs(t�d�s!�||��_�jS)N�always_returns)r@rI)�args�kwargs)�funcrr�wrapper�szonce.<locals>.wrapper)�	functools�wraps)rLrMr)rLr�once�s!rPcsryddl}Wntk
r(dSYnXG�fdd�d|j����}|jd�|jd�|jS)Nrcs:eZdZ��fdd�Z��fdd�Z�S)z"get_win_certfile.<locals>.CertFilecs't�|�j�tj|j�dS)N)�superr0�atexit�registerrE)r1)�CertFile�	__class__rrr0�sz+get_win_certfile.<locals>.CertFile.__init__cs0yt�|�j�Wntk
r+YnXdS)N)rQrE�OSError)r1)rTrUrrrE�s
z(get_win_certfile.<locals>.CertFile.close)rrrr0rEr)rT)rUrrT�srTZCAZROOT)�wincertstore�ImportErrorrTZaddstore�name)rWZ	_wincertsr)rTr�get_win_certfile�s
		

rZcCs4ttjjt�}t�p3t|d�p3t�S)z*Return an existing CA bundle path, or NoneN)r�os�path�isfilerrZ�next�_certifi_where)Zextant_cert_pathsrrrr	�s	c
Cs6ytd�j�SWntttfk
r1YnXdS)NZcertifi)�
__import__ZwhererXrrrrrrr_�sr_)%r[r<rRrrNZsetuptools.extern.six.movesrrrrZ
pkg_resourcesrrrBrX�__all__�striprrrGr/r8�AttributeError�objectr
r
rZbackports.ssl_match_hostnamer(r'rr2rrPrZr	r_rrrr�<module>sP"
	



4)
#