JFIF$        dd7 

Viewing File: /usr/lib/python3.9/site-packages/setuptools/__pycache__/ssl_support.cpython-39.opt-1.pyc

a

���hu!�@s�ddlZddlZddlZddlZddlZddlZddlZddl	m
Z
mZzddlZWne
yjdZYn0gd�Zd����ZzejjZejjZWney�eZZYn0eduo�eeefvZzddlmZmZWnNe
�y&zddlmZddlmZWne
�y dZdZYn0Yn0e�s>Gdd	�d	e�Ze�sVddd�Zd
d�ZGdd�de�ZGdd�de�Zddd�Z dd�Z!e!dd��Z"dd�Z#dd�Z$dS)�N)�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	)r
c@seZdZdS)r	N)�__name__�
__module__�__qualname__�rr�:/usr/lib/python3.9/site-packages/setuptools/ssl_support.pyr	7sr	�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)
Zdn�hostnameZ
max_wildcardsZpats�partsZleftmostZ	remainderZ	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 certificateZsubjectAltNamerZDNSNZsubjectZ
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�mapr)Zcertr ZdnsnamesZsan�key�value�subrrrr
ss>

��
���r
c@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|�jfi|��Sr,)�VerifyingHTTPSConnr-)�host�kw�r0rr�<lambda>��z2VerifyingHTTPSHandler.https_open.<locals>.<lambda>)Zdo_open)r0Zreqrr4r�
https_open�s
�z VerifyingHTTPSHandler.https_openN)rrr
�__doc__r/r7rrrrr�src@s eZdZdZdd�Zdd�ZdS)r1z@Simple verifying connection: no auth, subclasses, timeouts, etc.cKstj||fi|��||_dSr,)�HTTPSConnectionr/r-)r0r2r-r3rrrr/�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,ty�|j�tj�|j���Yn0dS)NZsource_address�_tunnel�_tunnel_host�create_default_context)Zcafile)Zserver_hostname)Z	cert_reqsZca_certs)�socketZcreate_connectionr2�port�getattr�hasattr�sockr:r;�sslr<r-Zwrap_socketZ
CERT_REQUIREDr
Zgetpeercertr	ZshutdownZ	SHUT_RDWR�close)r0rAZactual_host�ctxrrr�connect�s(�

�
zVerifyingHTTPSConn.connectN)rrr
r8r/rErrrrr1�sr1cCstj�t|pt���jS)z@Get a urlopen() replacement that uses ca_bundle for verification)�urllib�requestZbuild_openerrr�open)r-rrrr�s�rcst����fdd��}|S)Ncs t�d�s�|i|���_�jS)N�always_returns)r@rI)�args�kwargs��funcrr�wrapper�s
zonce.<locals>.wrapper)�	functools�wraps)rMrNrrLr�once�srQcsXzddl}Wnty YdS0G�fdd�d|j����}|�d�|�d�|jS)Nrcs,eZdZ��fdd�Z��fdd�Z�ZS)z"get_win_certfile.<locals>.CertFilecst�|���t�|j�dSr,)�superr/�atexit�registerrCr4��CertFile�	__class__rrr/�sz+get_win_certfile.<locals>.CertFile.__init__cs*zt�|���Wnty$Yn0dSr,)rRrC�OSErrorr4rUrrrC�sz(get_win_certfile.<locals>.CertFile.close)rrr
r/rC�
__classcell__r�rV)rWrrV�srVZCAZROOT)�wincertstore�ImportErrorrVZaddstore�name)r[Z	_wincertsrrZr�get_win_certfile�s

r^cCs$ttjjt�}t�p"t|d�p"t�S)z*Return an existing CA bundle path, or NoneN)�filter�os�path�isfilerr^�next�_certifi_where)Zextant_cert_pathsrrrr�s��rc
Cs,ztd���WStttfy&Yn0dS)NZcertifi)�
__import__�wherer\rrrrrrrdsrd)r)N)%r`r=rSrrOZurllib.requestrFZhttp.client�httpZ
pkg_resourcesrrrBr\�__all__�striprrrGr.Zclientr9�AttributeError�objectrr	r
Zbackports.ssl_match_hostnamer%r$rr1rrQr^rrdrrrr�<module>sV

�
6*(
	

Back to Directory  nL+D550H?Mx ,D"v]qv;6*Zqn)ZP0!1 A "#a$2Qr D8 a Ri[f\mIykIw0cuFcRı?lO7к_f˓[C$殷WF<_W ԣsKcëIzyQy/_LKℂ;C",pFA:/]=H  ~,ls/9ć:[=/#f;)x{ٛEQ )~ =𘙲r*2~ a _V=' kumFD}KYYC)({ *g&f`툪ry`=^cJ.I](*`wq1dđ#̩͑0;H]u搂@:~וKL Nsh}OIR*8:2 !lDJVo(3=M(zȰ+i*NAr6KnSl)!JJӁ* %݉?|D}d5:eP0R;{$X'xF@.ÊB {,WJuQɲRI;9QE琯62fT.DUJ;*cP A\ILNj!J۱+O\͔]ޒS߼Jȧc%ANolՎprULZԛerE2=XDXgVQeӓk yP7U*omQIs,K`)6\G3t?pgjrmۛجwluGtfh9uyP0D;Uڽ"OXlif$)&|ML0Zrm1[HXPlPR0'G=i2N+0e2]]9VTPO׮7h(F*癈'=QVZDF,d߬~TX G[`le69CR(!S2!P <0x<!1AQ "Raq02Br#SCTb ?Ζ"]mH5WR7k.ۛ!}Q~+yԏz|@T20S~Kek *zFf^2X*(@8r?CIuI|֓>^ExLgNUY+{.RѪ τV׸YTD I62'8Y27'\TP.6d&˦@Vqi|8-OΕ]ʔ U=TL8=;6c| !qfF3aů&~$l}'NWUs$Uk^SV:U# 6w++s&r+nڐ{@29 gL u"TÙM=6(^"7r}=6YݾlCuhquympǦ GjhsǜNlɻ}o7#S6aw4!OSrD57%|?x>L |/nD6?/8w#[)L7+6〼T ATg!%5MmZ/c-{1_Je"|^$'O&ޱմTrb$w)R$& N1EtdU3Uȉ1pM"N*(DNyd96.(jQ)X 5cQɎMyW?Q*!R>6=7)Xj5`J]e8%t!+'!1Q5 !1 AQaqё#2"0BRb?Gt^## .llQT $v,,m㵜5ubV =sY+@d{N! dnO<.-B;_wJt6;QJd.Qc%p{ 1,sNDdFHI0ГoXшe黅XۢF:)[FGXƹ/w_cMeD,ʡcc.WDtA$j@:) -# u c1<@ۗ9F)KJ-hpP]_x[qBlbpʖw q"LFGdƶ*s+ډ_Zc"?%t[IP 6J]#=ɺVvvCGsGh1 >)6|ey?Lӣm,4GWUi`]uJVoVDG< SB6ϏQ@ TiUlyOU0kfV~~}SZ@*WUUi##; s/[=!7}"WN]'(L! ~y5g9T̅JkbM' +s:S +B)v@Mj e Cf jE 0Y\QnzG1д~Wo{T9?`Rmyhsy3!HAD]mc1~2LSu7xT;j$`}4->L#vzŏILS ֭T{rjGKC;bpU=-`BsK.SFw4Mq]ZdHS0)tLg