OwlCyberSecurity - MANAGER
Edit File: ssl_support.cpython-36.opt-1.pyc
3 9��f,!���������������"���@���s���d�dl�Z�d�dlZd�dlZd�dlZd�dlZd�dlmZmZmZm Z �d�dl mZmZ�yd�dl Z W�n�ek rt���dZ Y�nX�dddddgZd j��j��ZyejjZejZW�n�ek r����e�ZZY�nX�e dk o�eeefkZyd�d l mZmZ�W�nR�ek �r:���yd�dlmZ�d�dlmZ�W�n�ek �r4���dZdZY�nX�Y�nX�e�sRG�d d��de�Ze�sjddd�Zdd��ZG�dd��de�ZG�dd��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 ���)r���c���������������@���s���e�Zd�ZdS�)r ���N)�__name__� __module__�__qualname__��r���r����!/usr/lib/python3.6/ssl_support.pyr ���5���s���r �������c������� ������C���s����g�}|�sdS�|�j�d�}|d�}|dd��}|jd�}||krLtdt|�����|s`|�j��|j��kS�|dkrt|jd��n>|jd �s�|jd �r�|jtj|���n|jtj|�j d d���x|D�]}|jtj|���q�W�tj dd j|��d�tj�} | j |�S�)zpMatching 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) Zdn�hostnameZ max_wildcardsZpats�partsZleftmostZ remainderZ wildcardsZfragZpatr���r���r����_dnsname_match;���s*���� r&���c�������������C���s����|�st�d��g�}|�jdf��}x0|D�](\}}|dkr"t||�r@dS�|j|��q"W�|s�xF|�jdf��D�]6}x0|D�](\}}|dkrjt||�r�dS�|j|��qjW�q`W�t|�dkr�td|d jtt|��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 certificateZsubjectAltNameZDNSNZsubjectZ commonNamer���z&hostname %r doesn't match either of %sz, zhostname %r doesn't match %rr���z=no appropriate commonName or subjectAltName fields were found) � ValueError�getr&���r����lenr ���r!���r���r���)Zcertr$���ZdnsnamesZsan�key�value�subr���r���r���r���o���s.���� r���c���������������@���s ���e�Zd�ZdZdd��Zdd��ZdS�)r���z=Simple verifying handler: no auth, subclasses, timeouts, etc.c�������������C���s���||�_�tj|���d�S�)N)� ca_bundle�HTTPSHandler�__init__)�selfr-���r���r���r���r/�������s����zVerifyingHTTPSHandler.__init__c����������������s�����j���fdd�|�S�)Nc����������������s���t�|���jf|�S�)N)�VerifyingHTTPSConnr-���)�host�kw)r0���r���r����<lambda>����s����z2VerifyingHTTPSHandler.https_open.<locals>.<lambda>)Zdo_open)r0���Zreqr���)r0���r���� https_open����s����z VerifyingHTTPSHandler.https_openN)r���r���r����__doc__r/���r5���r���r���r���r���r�������s���c���������������@���s ���e�Zd�ZdZdd��Zdd��ZdS�)r1���z@Simple verifying connection: no auth, subclasses, timeouts, etc.c�������������K���s���t�j|�|f|��||�_d�S�)N)�HTTPSConnectionr/���r-���)r0���r2���r-���r3���r���r���r���r/�������s����zVerifyingHTTPSConn.__init__c�������������C���s����t�j|�j|�jft|�dd���}t|�d�rHt|�dd��rH||�_|�j���|�j}n|�j}tt d�rxt j |�jd�}|j||d�|�_nt j|t j |�jd�|�_yt|�jj��|��W�n.�tk r����|�jjt�j��|�jj�����Y�nX�d�S�)NZsource_address�_tunnel�_tunnel_host�create_default_context)Zcafile)Zserver_hostname)Z cert_reqsZca_certs)�socketZcreate_connectionr2���Zport�getattr�hasattr�sockr8���r9����sslr:���r-���Zwrap_socketZ CERT_REQUIREDr���Zgetpeercertr ���ZshutdownZ SHUT_RDWR�close)r0���r>���Zactual_hostZctxr���r���r����connect����s$���� zVerifyingHTTPSConn.connectN)r���r���r���r6���r/���rA���r���r���r���r���r1�������s���r1���c�������������C���s���t�jjt|�pt����jS�)z@Get a urlopen() replacement that uses ca_bundle for verification)r����requestZbuild_openerr���r ����open)r-���r���r���r���r�������s����c����������������s���t�j�����fdd��}|S�)Nc�����������������s���t���d�s��|�|���_��jS�)N�always_returns)r=���rD���)�args�kwargs)�funcr���r����wrapper����s���� zonce.<locals>.wrapper)� functools�wraps)rG���rH���r���)rG���r����once����s����rK���c�����������������sX���ydd�l�}�W�n�tk r ���d�S�X�G���fdd�d|�j�������}|jd��|jd��|jS�)Nr���c�������������������s,���e�Zd�Z���fdd�Z���fdd�Z���ZS�)z"get_win_certfile.<locals>.CertFilec����������������s���t���|��j���tj|�j��d�S�)N)�superr/����atexit�registerr@���)r0���)�CertFile� __class__r���r���r/�������s����z+get_win_certfile.<locals>.CertFile.__init__c����������������s,���yt���|��j���W�n�tk r&���Y�nX�d�S�)N)rL���r@����OSError)r0���)rO���rP���r���r���r@�������s����z(get_win_certfile.<locals>.CertFile.close)r���r���r���r/���r@���� __classcell__r���)rO���)rP���r���rO�������s���rO���ZCAZROOT)�wincertstore�ImportErrorrO���Zaddstore�name)rS���Z _wincertsr���)rO���r����get_win_certfile����s���� rV���c��������������C���s$���t�tjjt�}�t��p"t|�d�p"t��S�)z*Return an existing CA bundle path, or NoneN)r����os�path�isfiler���rV����next�_certifi_where)Zextant_cert_pathsr���r���r���r �������s���� c������������ ���C���s,���yt�d�j��S��tttfk r&���Y�nX�d�S�)NZcertifi)� __import__�whererT���r���r���r���r���r���r���r[������s����r[���)r���)N)%rW���r;���rM���r���rI���Zsetuptools.extern.six.movesr���r���r���r���Z pkg_resourcesr���r���r?���rT����__all__�stripr���r���rB���r.���r7����AttributeError�objectr ���r ���r���Zbackports.ssl_match_hostnamer'���r&���r���r1���r���rK���rV���r ���r[���r���r���r���r����<module>���sP��� 4) (