관리-도구
편집 파일: ssl_match_hostname.cpython-38.pyc
U ʗRe~ � @ st d Z ddlZddlZzddlZW n ek r8 dZY nX dZG dd� de�Zddd�Zd d � Z dd� Z d d� ZdS )zJThe match_hostname() function from Python 3.3.3, essential when using SSL.� Nz3.5.0.1c @ s e Zd ZdS )�CertificateErrorN)�__name__� __module__�__qualname__� r r ��/builddir/build/BUILDROOT/alt-python38-pip-22.2.1-2.el8.x86_64/opt/alt/python38/lib/python3.8/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.pyr s r � c C s� g }| sdS | � d�}|d }|dd� }|�d�}||krLtdt| � ��|s`| �� |�� kS |dkrt|�d� n>|�d �s�|�d �r�|�t�|�� n|�t�|�� d d�� |D ]}|�t�|�� q�t� dd �|� d tj�} | � |�S )zhMatching according to RFC 6125, section 6.4.3 http://tools.ietf.org/html/rfc6125#section-6.4.3 F�.r r N�*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�hostname� max_wildcards�pats�parts�leftmost� remainder� wildcards�frag�patr r r �_dnsname_match s, �r"