File manager - Edit - /opt/gsutil/third_party/urllib3/src/urllib3/util/__pycache__/ssltransport.cpython-39.pyc
Back
a '�of# � @ s� d dl mZ d dlZd dlZd dlZd dlZddlmZ ejrZd dl m Z ddlmZm Z ejeef Ze�d�Zd ZG d d� d�ZdS )� )�annotationsN� )�ProxySchemeUnsupported)�Self� )�_TYPE_PEER_CERT_RET�_TYPE_PEER_CERT_RET_DICT�_ReturnValuei @ c @ s@ e Zd ZdZeddd�dd��Zdmd dd ddd�d d�Zdd�dd�Zddd�dd�Zdd�dd�Z dndddd�dd�Z dodddd!�d"d#�Zdpd$d%dd&d'�d(d)�Zdqd*ddd+�d,d-�Z drd*ddd+�d.d/�Zdsdddd0�d1d%d d d d2d3�d4d5�Zdd�d6d7�Zdd�d8d9�Zejdtd;d<d=�d>d?��Zejd@dAd=�dBd?��ZduddDd=�dEd?�Zd d�dFdG�ZdHd�dIdJ�Zd d�dKdL�Zd d�dMdN�ZdOd�dPdQ�Zd d�dRdS�ZdTddU�dVdW�ZdTd�dXdY�Zdd�dZd[�Zdvdd\dd�d]d^�Zejd_dd`�dadb��Zejdcd*ddd�dedb��Zejdfdd\d*dg�dhdb��Zdwdidjd\dkdg�dldb�ZdS )x�SSLTransportaL The SSLTransport wraps an existing socket and establishes an SSL connection. Contrary to Python's implementation of SSLSocket, it allows you to chain multiple TLS connections together. It's particularly useful if you need to implement TLS within TLS. The class supports most of the socket API operations. zssl.SSLContext�None)�ssl_context�returnc C s t | d�std��dS )z� Raises a ProxySchemeUnsupported if the provided ssl_context can't be used for TLS in TLS. The only requirement is that the ssl_context provides the 'wrap_bio' methods. �wrap_biozXTLS in TLS requires SSLContext.wrap_bio() which isn't available on non-native SSLContextN)�hasattrr )r � r �@/opt/gsutil/third_party/urllib3/src/urllib3/util/ssltransport.py�$_validate_ssl_context_for_tls_in_tls! s �z1SSLTransport._validate_ssl_context_for_tls_in_tlsNTz socket.socketz str | None�bool)�socketr �server_hostname�suppress_ragged_eofsr c C sH t �� | _t �� | _|| _|| _|j| j| j|d�| _| �| jj � dS )zV Create an SSLTransport around socket using the provided ssl_context. )r N) �ssl� MemoryBIO�incoming�outgoingr r r �sslobj�_ssl_io_loop�do_handshake)�selfr r r r r r r �__init__1 s �zSSLTransport.__init__r )r c C s | S �Nr �r r r r � __enter__H s zSSLTransport.__enter__z typing.Any)�_r c G s | � � d S r )�close)r r# r r r �__exit__K s zSSLTransport.__exit__�intc C s | j �� S r )r �filenor! r r r r'