§ <ˆjãóL—dZddlmZddlZdZGd„de¦«Zd d„Zd „ZdS) zHThe match_hostname() function from Python 3.2, essential when using SSL.é)Úabsolute_importNz3.2.2có—eZdZdS)ÚCertificateErrorN)Ú__name__Ú __module__Ú __qualname__©óúU/opt/cloudlinux/venv/lib64/python3.11/site-packages/raven/utils/ssl_match_hostname.pyrr s€€€€€Ø€Dr récóh—g}|sdS| d¦«}|d}| d¦«}||krtdt|¦«z¦«‚|s*| ¦«| ¦«kS|dkr| d¦«n�| d¦«s| d¦«r(| tj|¦«¦«n;| tj|¦«  dd ¦«¦«|d d …D])}| tj|¦«¦«Œ*tj d d   |¦«zdztj ¦«}|  |¦«S)zhMatching according to RFC 6125, section 6.4.3 http://tools.ietf.org/html/rfc6125#section-6.4.3 Fú.rÚ*z,too many wildcards in certificate DNS name: z[^.]+zxn--z\*z[^.]*r Nz\Az\.z\Z)ÚsplitÚcountrÚreprÚlowerÚappendÚ startswithÚreÚescapeÚreplaceÚcompileÚjoinÚ IGNORECASEÚmatch) ÚdnÚhostnameÚ max_wildcardsÚpatsÚpartsÚleftmostÚ wildcardsÚfragÚpats r Ú_dnsname_matchr&s¥€ð €DØ ð؈uà �HŠH�T‰NŒN€EØ�QŒx€Hà—’˜sÑ#Ô#€IØ�=Ò Ð õ Ø :½TÀ"¹X¼XÑ EñGôGð Gð ð.Ø�xŠx‰zŒz˜XŸ^š^Ñ-Ô-Ò-Ð-ð �3‚€ð � Š �GÑÔÐÐØ × Ò ˜VÑ $Ô $ðA¨×(;Ò(;¸FÑ(CÔ(CðAð � Š •B”I˜hÑ'Ô'Ñ(Ô(Ð(Ð(ð � Š •B”I˜hÑ'Ô'×/Ò/°°wÑ?Ô?Ñ@Ô@Ð@ð�a�b�b” ð%ð%ˆØ � Š •B”I˜d‘O”OÑ$Ô$Ð$Ð$å Œ*�U˜UŸZšZ¨Ñ-Ô-Ñ-°Ñ5µr´}Ñ EÔ E€CØ �9Š9�XÑ Ô Ðr c óz—|std¦«‚g}| dd¦«}|D]3\}}|dkr(t||¦«rdS| |¦«Œ4|sP| dd¦«D]9}|D]4\}}|dkr)t||¦«rdS| |¦«Œ5Œ:t |¦«dkr;t d |›d d  tt|¦«¦«›�¦«‚t |¦«dkrt d |›d |d ›�¦«‚t d¦«‚)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Ú commonNamer z hostname z doesn't match either of z, z doesn't match rz=no appropriate commonName or subjectAltName fields were found) Ú ValueErrorÚgetr&rÚlenrrÚmapr)ÚcertrÚdnsnamesÚsanÚkeyÚvalueÚsubs r Úmatch_hostnamer6@s–€ð ð4ÝÐ2Ñ3Ô3Ð3Ø€HØ �(Š(Ð# RÑ (Ô (€CØð#ð#‰ ˆˆUØ �%Š<ˆ<ݘe XÑ.Ô.ð Ø��Ø �OŠO˜EÑ "Ô "Ð "øØ ð +ð—8’8˜I rÑ*Ô*ð +ð +ˆCØ!ð +ð +‘ ��Uð˜,Ò&Ð&Ý% e¨XÑ6Ô6ðØ˜˜˜Ø—O’O EÑ*Ô*Ð*øð  +õ ˆ8�}„}�qÒÐÝÐà��˜$Ÿ)š)¥C­¨hÑ$7Ô$7Ñ8Ô8Ð8ð :ñ ô ð õ ˆX‰Œ˜!Ò Ð ÝÐØ.6¨h¨h¸À¼ ¸ Ð Dñ ô ð õØ Kñ ô ð r )r ) Ú__doc__Ú __future__rrÚ __version__r,rr&r6r r r úr:sƒðØNÐNà&Ð&Ð&Ð&Ð&Ð&à € € € à€ ð ð ð ð ð �zñ ô ð ð/ð/ð/ð/ðd( ð( ð( ð( ð( r