zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
U
G=®d_!ã @s¼ddlZddlZddlZddlZddlZddlmZmZmZm    Z    ddl
m Z m Z z ddl Z Wnek
rtdZ YnXdddddgZd     ¡ ¡ZzejjZejZWnek
r¾eZZYnXe dk    oÒeeefkZzdd
l mZmZWnRek
r:zdd lmZdd 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úMD:\z\workplace\VsCode\pyvenv\venv\Lib\site-packages\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
|j d}|j ||d|_nt    j |t    j |j d|_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Úisfiler r{Ú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__Ústriprr rar;rHÚAttributeErrorÚobjectr
r rZbackports.ssl_match_hostnamer0r+rr>r rlr{r    r€rrrrÚ<module>s` 
þ 
 
ÿ 
6*(