HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/test/test_asyncio/__pycache__/test_sslproto.cpython-311.opt-1.pyc
�

��Vc�j��T�dZddlZddlZddlZddlZddlmZddlmZ	ddlZn
#e	$rdZYnwxYwddl
Z
ddl
mZddl
mZddl
m
Z
ddlmZdd	lmZd
�Zejedud��Gd�d
ej����ZGd�dej��Zejedud��Gd�deej����Zejedud��ejee
d��d��Gd�deej������Zedkrej��dSdS)zTests for asyncio/sslproto.py.�N)�support)�mock)�log)�	protocols)�sslproto)�utils)�
functionalc�.�tjd��dS�N)�asyncio�set_event_loop_policy���3D:\Python311\Lib\test\test_asyncio\test_sslproto.py�tearDownModulers���!�$�'�'�'�'�'rz
No ssl modulec�t��eZdZ�fd�Zddd�d�Zdd�d�Zd�Zd�Zd	�Zd
�Z	d�Z
d�Zd
�Zd�Z
d�Zd�Z�xZS)�SslProtoHandshakeTestsc���t�����tj��|_|�|j��dSr)�super�setUpr�new_event_loop�loop�set_event_loop)�self�	__class__s �rrzSslProtoHandshakeTests.setUps@���
���
�
�����*�,�,��	����D�I�&�&�&�&�&rN)�waiter�protoc�*�tj��}|�tj��}t	j|j|||d���}|�|j�	��|��|�
|jj��|S)Ng�������?��ssl_handshake_timeout)�
test_utils�dummy_ssl_contextr�Protocolr�SSLProtocolr�assertIs�_app_transport�get_protocol�
addCleanup�close)rrr�
sslcontext�	ssl_protos     r�ssl_protocolz#SslProtoHandshakeTests.ssl_protocol"s����1�3�3�
��	'��$�&�&�E��(���E�:�v�?B�D�D�D�	��
�
�i�.�;�;�=�=�u�E�E�E����	�0�6�7�7�7��r��do_handshakec���tj��}tj��}tj|j_|�||_||_|�|��|Sr)	r�Mock�ssl�SSLWantReadError�read�side_effectr.�_sslobj�connection_made)rr+r.�	transport�sslobjs     rr6z&SslProtoHandshakeTests.connection_made,sW���I�K�K�	������"%�"6�����	/�".�F��"�	���!�!�)�,�,�,��rc��tj��}tj��}tj��}|�t
d��5t
j|j|||d���ddd��dS#1swxYwYdS)N�a positive numberrr�	r!r"rr0�assertRaisesRegex�
ValueErrorrr$r�rr*�	app_protors    r�test_handshake_timeout_zeroz2SslProtoHandshakeTests.test_handshake_timeout_zero7s����1�3�3�
��I�K�K�	������
�
#�
#�J�0C�
D�
D�	:�	:�� ���I�z�6�78�
:�
:�
:�
:�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:����	:�	:�	:�	:�	:�	:��B�B�Bc��tj��}tj��}tj��}|�t
d��5t
j|j|||d���ddd��dS#1swxYwYdS)Nr:i����rr;r>s    r�test_handshake_timeout_negativez6SslProtoHandshakeTests.test_handshake_timeout_negative?s����1�3�3�
��I�K�K�	������
�
#�
#�J�0C�
D�
D�	<�	<�� ���I�z�6�7:�
<�
<�
<�
<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<����	<�	<�	<�	<�	<�	<rAc��|j���}|�|���}|�|t	jtj������|���tj
|j��|�|���t��dS�N�r)r4r-)r�
create_futurer,r6rr0r1r2�eof_receivedr!�run_briefly�assertIsInstance�	exception�ConnectionResetError�rrr+s   r�test_eof_received_waiterz/SslProtoHandshakeTests.test_eof_received_waiterGs�����(�(�*�*���%�%�V�%�4�4�	�������s�/C�D�D�D�	�	
�	
�	
�	��� � � ���t�y�)�)�)����f�.�.�0�0�2F�G�G�G�G�Grc��|j���}|�|���}tj���}tj�tj��	|�	d��tj�|��dS#tj�|��wxYw�NrF)
rrGr,r�logger�getEffectiveLevel�setLevel�logging�FATAL�_fatal_error)rrr+�	log_levels    r�test_fatal_error_no_name_errorz5SslProtoHandshakeTests.test_fatal_error_no_name_errorRs�����(�(�*�*���%�%�V�%�4�4�	��J�0�0�2�2�	��
���G�M�*�*�*�	+��"�"�4�(�(�(�
�J���	�*�*�*�*�*��C�J���	�*�*�*�*���s�8B.�.!Cc��|j���}|�|���}|�|t	jtj������|�t��tj|j��|�|�
��t��dSrE)rrGr,r6rr0r1r2�connection_lost�ConnectionAbortedErrorr!rIrJrKrMs   r�test_connection_lostz+SslProtoHandshakeTests.test_connection_lostas�����(�(�*�*���%�%�V�%�4�4�	�������s�/C�D�D�D�	�	
�	
�	
�	�!�!�"8�9�9�9���t�y�)�)�)����f�.�.�0�0�2H�I�I�I�I�Irc�n�|j���}|�|���}|�|t	jtj������}tj	|j��|j
���|�|j
j��dSrE)rrGr,r6rr0r1r2r!rIr&r)�
assertTrue�abort�called)rrr+r7s    r�test_close_during_handshakez2SslProtoHandshakeTests.test_close_during_handshakens�����(�(�*�*���%�%�V�%�4�4�	��(�(����s�/C�D�D�D�)�
�
�	�	��t�y�)�)�)�� �&�&�(�(�(����	��.�/�/�/�/�/rc��|j���}|�|���}|�|�d����t��}|�|�d|��|��|�|��|�|�d����|�	d��|�|�d����dS)NrF�socket)
rrGr,�assertIsNone�_get_extra_info�objectr%r6�assertIsNotNonerZ)rrr+�defaults    r�(test_get_extra_info_on_closed_connectionz?SslProtoHandshakeTests.test_get_extra_info_on_closed_connection|s�����(�(�*�*���%�%�V�%�4�4�	����)�3�3�H�=�=�>�>�>��(�(���
�
�i�/�/��'�B�B�G�L�L�L����Y�'�'�'����Y�6�6�x�@�@�A�A�A��!�!�$�'�'�'����)�3�3�H�=�=�>�>�>�>�>rc�N�|j���}|�|���}tj��}|j�|��|�|j���|��|�|j	|��dSrP)
rrGr,rr#r&�set_protocolr%r'�
_app_protocol)rrr+�
new_app_protos    r�test_set_new_app_protocolz0SslProtoHandshakeTests.test_set_new_app_protocol�s�����(�(�*�*���%�%�V�%�4�4�	��(�*�*�
�� �-�-�m�<�<�<��
�
�i�.�;�;�=�=�}�M�M�M��
�
�i�-�}�=�=�=�=�=rc���|���}|�|��|j}|���|�|�d����dS)N�)r,r6r&r)rd�buffer_updated�rr+�transps   r� test_data_received_after_closingz7SslProtoHandshakeTests.test_data_received_after_closing�sf���%�%�'�'�	����Y�'�'�'��)��������	
���)�2�2�1�5�5�6�6�6�6�6rc���|���}|�|��|j}|���|�|�d����dS)Nsdata)r,r6r&r)rd�writerrs   r�test_write_after_closingz/SslProtoHandshakeTests.test_write_after_closing�sd���%�%�'�'�	����Y�'�'�'��)��������	
���&�,�,�w�/�/�0�0�0�0�0r)�__name__�
__module__�__qualname__rr,r6r@rCrNrXr\rarirnrtrw�
__classcell__)rs@rrrs�������'�'�'�'�'�
&*�������:>�	�	�	�	�	�:�:�:�<�<�<�	H�	H�	H�
+�
+�
+�J�J�J�0�0�0�	?�	?�	?�>�>�>�7�7�7�1�1�1�1�1�1�1rrc�h�eZdZdZejZd�Zd�Zd�Z	d�Z
d�Zd�Zd�Z
d	�Zd
�Zd�Zd�Zd
�ZdS)�BaseStartTLSi�c��t�r)�NotImplementedError�rs r�new_loopzBaseStartTLS.new_loop�s��!�!rc�D�Gd�dtj��}dD�]�}|d|��}tj|d��|�|jd��|d|��}tj|d��|�|jd��|d|��}tj|d��|�|jd��|d|��}tj|d��|�|jd��|d	|��}tj|d��|�|jd��|d
|��}|�td��5tj|d��ddd��n#1swxYwY���dS)Nc� �eZdZd�Zd�Zd�ZdS)�.BaseStartTLS.test_buf_feed_data.<locals>.Protoc�|�t|��|_t|j��|_d|_||_dS�Nr)�	bytearray�buf�
memoryview�mv�data�usemv)r�bufsizer�s   r�__init__z7BaseStartTLS.test_buf_feed_data.<locals>.Proto.__init__�s4��$�W�-�-���$�T�X�.�.�����	�"��
�
�
rc�,�|jr|jS|jSr)r�r�r��r�sizehints  r�
get_bufferz9BaseStartTLS.test_buf_feed_data.<locals>.Proto.get_buffer�s���:�$��7�N��8�Orc��|jr|xj|jd|�z
c_dS|xj|jd|�z
c_dSr)r�r�r�r�)r�nsizes  rrqz=BaseStartTLS.test_buf_feed_data.<locals>.Proto.buffer_updated�sI���:�2��I�I����%���0�I�I�I�I��I�I���&�5�&�!1�1�I�I�I�IrN)rxryrzr�r�rqrrr�Protor��sA������
#�
#�
#�
$�
$�
$�
2�
2�
2�
2�
2rr�)FT�s12345�s1234��drzempty buffer)r�BufferedProtocolr�_feed_data_to_buffered_proto�assertEqualr�r<�RuntimeError)rr�r�rs    r�test_buf_feed_datazBaseStartTLS.test_buf_feed_data�s��	2�	2�	2�	2�	2�G�,�	2�	2�	2�(#�	H�	H�E��E�!�U�O�O�E��2�5�(�C�C�C����U�Z��2�2�2��E�!�U�O�O�E��2�5�(�C�C�C����U�Z��2�2�2��E�!�U�O�O�E��2�5�'�B�B�B����U�Z��1�1�1��E�!�U�O�O�E��2�5�'�B�B�B����U�Z��1�1�1��E�#�u�%�%�E��2�5�(�C�C�C����U�Z��2�2�2��E�!�U�O�O�E��'�'��n�E�E�
H�
H��6�u�h�G�G�G�
H�
H�
H�
H�
H�
H�
H�
H�
H�
H�
H����
H�
H�
H�
H��-	H�	Hs�1F�F	�F	c�>������d�jz�tj���tj������fd�}G�fd�dtj�������fd�}��|�j���5}�j�	t	j
||j��tj
�����ddd��n#1swxYwYtj����tj���������dS)N�1c�B��|��j��|�t�����}��t|��t�����|��d���|�d��|�t�����}��t|��t�����|�tj	��|�
��dS�NT��server_side�O��
settimeout�TIMEOUT�recv_all�lenr��	start_tls�sendall�shutdownrc�	SHUT_RDWRr)��sockr��	HELLO_MSGr�server_contexts  ���r�servez=BaseStartTLS.test_start_tls_client_reg_proto_1.<locals>.serve�s�����O�O�D�L�)�)�)��=�=��Y���0�0�D����S��Y�Y��I���7�7�7��N�N�>�t�N�<�<�<��L�L������=�=��Y���0�0�D����S��Y�Y��I���7�7�7��M�M�&�*�+�+�+��J�J�L�L�L�L�Lrc�,��eZdZd�Z�fd�Zd�Zd�ZdS)�CBaseStartTLS.test_start_tls_client_reg_proto_1.<locals>.ClientProtoc�0�||_||_d|_dS�Nr��on_data�on_eof�con_made_cnt�rr�r�s   rr�zLBaseStartTLS.test_start_tls_client_reg_proto_1.<locals>.ClientProto.__init__����&���$���$%��!�!�!rc�^��|xjdz
c_��|jd��dS�Nr��r�r��r�trrs  �rr6zSBaseStartTLS.test_start_tls_client_reg_proto_1.<locals>.ClientProto.connection_made��6����"�"�a�'�"�"�� � ��!3�Q�7�7�7�7�7rc�:�|j�|��dSr�r��
set_result�rr�s  r�
data_receivedzQBaseStartTLS.test_start_tls_client_reg_proto_1.<locals>.ClientProto.data_received������'�'��-�-�-�-�-rc�:�|j�d��dS�NT�r�r�r�s rrHzPBaseStartTLS.test_start_tls_client_reg_proto_1.<locals>.ClientProto.eof_received�����&�&�t�,�,�,�,�,rN�rxryrzr�r6r�rHr�s�r�ClientProtor���[�������
&�
&�
&�

8�
8�
8�
8�
8�

.�
.�
.�
-�
-�
-�
-�
-rr�c������K�tjd���d{V���	j�����	j�����	jj���fd�g|�R��d{V��\}}|�����	j�||����d{V��}�	���d{V��d��|������d{V��|���dS)N��?c��������Srr�r�r�r�s���r�<lambda>zPBaseStartTLS.test_start_tls_client_reg_proto_1.<locals>.client.<locals>.<lambda>������G�V�4�4�rr�)	r�sleeprrG�create_connectionrvr�r�r))
�addrr�r�new_trr�r�r�r��client_contextrs
    @@����r�clientz>BaseStartTLS.test_start_tls_client_reg_proto_1.<locals>.clients=��������-��$�$�$�$�$�$�$�$�$��i�-�-�/�/�G��Y�,�,�.�.�F�9�d�i�9�4�4�4�4�4�4�=�7;�=�=�=�=�=�=�=�=�=�I�B��
�H�H�Y�����9�.�.�r�5�.�I�I�I�I�I�I�I�I�F����7�]�]�]�]�]�]�D�1�1�1��L�L��#�#�#��L�L�L�L�L�L�L��L�L�N�N�N�N�Nr��timeout��PAYLOAD_SIZEr!�simple_server_sslcontext�simple_client_sslcontextrr#�
tcp_serverr�r�run_until_complete�wait_forr�r�
SHORT_TIMEOUT�weakref�ref�
gc_collectrd�rr�r��srvr�r�r�r�s`   @@@@r�!test_start_tls_client_reg_proto_1z.BaseStartTLS.test_start_tls_client_reg_proto_1�s���������4�,�,�	�#�<�>�>��#�<�>�>��
	�
	�
	�
	�
	�
	�
	�	-�	-�	-�	-�	-�	-�	-�'�*�	-�	-�	-�"	�	�	�	�	�	�	�	�$�_�_�U�D�L�_�
9�
9�	A�S��I�(�(�� �����!1�!1�)0�)>�@�@�@�
A�
A�
A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A����	A�	A�	A�	A�!��^�4�4����������.�.�*�*�+�+�+�+�+��;AC�C�Cc�>������d�jz�tj���tj������fd�}G�fd�dtj�������fd�}��|�j���5}�j�	t	j
||j��tj
�����ddd��n#1swxYwYtj����tj���������dS)Nr�c���|��j��|��d���|�d��|�t�����}��t|��t�����|�tj	��|�
��dSr�)r�r�r�r�r�r�r�r�rcr�r)r�s  ���rr�z>BaseStartTLS.test_create_connection_memory_leak.<locals>.serve's�����O�O�D�L�)�)�)��N�N�>�t�N�<�<�<��L�L������=�=��Y���0�0�D����S��Y�Y��I���7�7�7��M�M�&�*�+�+�+��J�J�L�L�L�L�Lrc�,��eZdZd�Z�fd�Zd�Zd�ZdS)�DBaseStartTLS.test_create_connection_memory_leak.<locals>.ClientProtoc�0�||_||_d|_dSr�r�r�s   rr�zMBaseStartTLS.test_create_connection_memory_leak.<locals>.ClientProto.__init__4r�rc�l��||_|xjdz
c_��|jd��dSr�)r�r�r�r�s  �rr6zTBaseStartTLS.test_create_connection_memory_leak.<locals>.ClientProto.connection_made9s=�������"�"�a�'�"�"�� � ��!3�Q�7�7�7�7�7rc�:�|j�|��dSrr�r�s  rr�zRBaseStartTLS.test_create_connection_memory_leak.<locals>.ClientProto.data_received@r�rc�:�|j�d��dSr�r�r�s rrHzQBaseStartTLS.test_create_connection_memory_leak.<locals>.ClientProto.eof_receivedCr�rNr�r�s�rr�r�3s[�������
&�
&�
&�

8�
8�
8�
8�
8�
.�
.�
.�
-�
-�
-�
-�
-rr�c�����K�tjd���d{V���j�����j�����jj���fd�g|�Rd�i��d{V��\}}����d{V��d��|������d{V��|���dS)Nr�c��������Srrr�s���rr�zQBaseStartTLS.test_create_connection_memory_leak.<locals>.client.<locals>.<lambda>Mr�rr1r�)rr�rrGr�r�rvr))	r�r�rr�r�r�r�r�rs	   @@����rr�z?BaseStartTLS.test_create_connection_memory_leak.<locals>.clientFs
��������-��$�$�$�$�$�$�$�$�$��i�-�-�/�/�G��Y�,�,�.�.�F�9�d�i�9�4�4�4�4�4�4�$�7;�$�$�$�"�$�$�$�$�$�$�$�$�I�B��
���7�]�]�]�]�]�]�D�1�1�1��H�H�Y�����L�L�L�L�L�L�L��H�H�J�J�J�J�Jrr�r�r�s`   @@@@r�"test_create_connection_memory_leakz/BaseStartTLS.test_create_connection_memory_leak!s���������4�,�,�	�#�<�>�>��#�<�>�>��
	�
	�
	�
	�
	�
	�
	�	-�	-�	-�	-�	-�	-�	-�'�*�	-�	-�	-�&	�	�	�	�	�	�	�	� �_�_�U�D�L�_�
9�
9�	A�S��I�(�(�� �����!1�!1�)0�)>�@�@�@�
A�
A�
A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A����	A�	A�	A�	A�!��^�4�4����������.�.�*�*�+�+�+�+�+r�c���������	�d�jz�tj���	tj���d����	fd�}G��fd�dtj���G�fd�dtj���������fd�}��|�j�	��5}�j	�
t	j||j���j�	����ddd��dS#1swxYwYdS)
Nr�rc���|��j��|�t�����}��t|��t�����|��d���|�d��|�t�����}��t|��t�����|�d��|�t�����}��t|��t�����|�tj	��|�
��dS)NTr�r��2r�r�s  ���rr�z=BaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.servehs"����O�O�D�L�)�)�)��=�=��Y���0�0�D����S��Y�Y��I���7�7�7��N�N�>�t�N�<�<�<��L�L������=�=��Y���0�0�D����S��Y�Y��I���7�7�7��L�L������=�=��Y���0�0�D����S��Y�Y��I���7�7�7��M�M�&�*�+�+�+��J�J�L�L�L�L�Lrc�0��eZdZd�Z�fd�Zd�Z�fd�ZdS)�HBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoFirstc�<�||_td��|_dSr�)r�r�r�)rr�s  rr�zQBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoFirst.__init__|s��&���$�Q�<�<����rc����dz
�dSr�r�rr��client_con_made_callss  �rr6zXBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoFirst.connection_made�����%��*�%�%�%rc��|jSr)r�r�s  rr�zSBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoFirst.get_buffer�s	���x�rc�����|d��|j�t|jd|�����dSr�)r�r�r��bytesr�)�slfr�rs  �rrqzWBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoFirst.buffer_updated�sG���� � ���*�*�*���&�&�u�S�W�V�e�V�_�'=�'=�>�>�>�>�>rN)rxryrzr�r6r�rq)rrs��r�ClientProtoFirstr�{se�������
(�
(�
(�
+�
+�
+�
+�
+�
 �
 �
 �
?�
?�
?�
?�
?�
?�
?rrc�,��eZdZd�Z�fd�Zd�Zd�ZdS)�IBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoSecondc�0�||_||_d|_dSr�r�r�s   rr�zRBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoSecond.__init__�r�rc����dz
�dSr�rrs  �rr6zYBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoSecond.connection_made�rrc�:�|j�|��dSrr�r�s  rr�zWBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoSecond.data_received�r�rc�:�|j�d��dSr�r�r�s rrHzVBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoSecond.eof_received�r�rNr�)rs�r�ClientProtoSecondr	�s[�������
&�
&�
&�

+�
+�
+�
+�
+�
.�
.�
.�
-�
-�
-�
-�
-rrc�����K�tjd���d{V���j�����j���}�j���}�jj��fd�g|�R��d{V��\}}|��	���j�||����d{V��}����d{V��d��|��	��|��||������|�d{V��d��|��	��|�d{V��|�	�����
d��dS)Nr�c�������Srr)r�on_data1s��rr�zPBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.client.<locals>.<lambda>�s���(�(��2�2�rr�r�r�)
rr�rrGr�rvr�r�rkr))
r��on_data2r�r�rr�rrrr�rr�rs
      @������rr�z>BaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.client�s��������-��$�$�$�$�$�$�$�$�$��y�.�.�0�0�H��y�.�.�0�0�H��Y�,�,�.�.�F�9�d�i�9�2�2�2�2�2�;�59�;�;�;�;�;�;�;�;�;�I�B��
�H�H�Y�����9�.�.�r�5�.�I�I�I�I�I�I�I�I�F����8�^�^�^�^�^�^�T�2�2�2��L�L��#�#�#���� 1� 1�(�F� C� C�D�D�D����8�^�^�^�^�^�^�T�2�2�2��L�L��#�#�#��L�L�L�L�L�L�L��L�L�N�N�N�

���2�A�6�6�6�6�6rr�)
r�r!r�r�rr�r#r�r�rr�r�r�)
rr�r�r�rrr�rr�r�s
`   @@@@@@r�!test_start_tls_client_buf_proto_1z.BaseStartTLS.test_start_tls_client_buf_proto_1as�����������4�,�,�	�#�<�>�>��#�<�>�>�� !��	�	�	�	�	�	�	�&	?�	?�	?�	?�	?�	?�	?�	?�w�7�	?�	?�	?� 	-�	-�	-�	-�	-�	-�	-�� 0�	-�	-�	-� 	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�8�_�_�U�D�L�_�
9�
9�	8�S��I�(�(�� �����!1�!1�)-��7�7�7�
8�
8�
8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�	8�	8s�AC+�+C/�2C/c��������d�jz�tj����j�������fd�}G�fd�dt
j��������fd�}��|�j���5}�j�	tj
||j��tj
�����ddd��dS#1swxYwYdS)Nr�c����|��j��|�t�����}��t|��t�����	�j��jd��|�d��}n#t$rYnwxYw|�	��dS#|�	��wxYw�N�)
r�r�r�r�r�r�call_soon_threadsafer�r[r))r�r�r�r�server_waits_on_handshakes  ���rr�z=BaseStartTLS.test_start_tls_slow_client_cancel.<locals>.serve�s�����O�O�D�L�)�)�)��=�=��Y���0�0�D����S��Y�Y��I���7�7�7�
��	�.�.�-�8�$�@�@�@��}�}�[�1�1����)�
�
�
���
�����
�
��������
�
�������s*�/5B%�$C�%
B2�/C�1B2�2C�C!c�,��eZdZd�Z�fd�Zd�Zd�ZdS)�CBaseStartTLS.test_start_tls_slow_client_cancel.<locals>.ClientProtoc�0�||_||_d|_dSr�r�r�s   rr�zLBaseStartTLS.test_start_tls_slow_client_cancel.<locals>.ClientProto.__init__�r�rc�^��|xjdz
c_��|jd��dSr�r�r�s  �rr6zSBaseStartTLS.test_start_tls_slow_client_cancel.<locals>.ClientProto.connection_made�r�rc�:�|j�|��dSrr�r�s  rr�zQBaseStartTLS.test_start_tls_slow_client_cancel.<locals>.ClientProto.data_received�r�rc�:�|j�d��dSr�r�r�s rrHzPBaseStartTLS.test_start_tls_slow_client_cancel.<locals>.ClientProto.eof_received�r�rNr�r�s�rr�r�r�rr�c�����K�tjd���d{V���j�����j�����jj���fd�g|�R��d{V��\}}|�����	�d{V����tj��5tj�j�	||���d���d{V��ddd��dS#1swxYwYdS)Nr�c��������Srrr�s���rr�zPBaseStartTLS.test_start_tls_slow_client_cancel.<locals>.client.<locals>.<lambda>�r�r)
rr�rrGr�rv�assertRaises�TimeoutErrorr�r�)
r�r�rr�r�r�r�r�rrs
   @@�����rr�z>BaseStartTLS.test_start_tls_slow_client_cancel.<locals>.client�s���������-��$�$�$�$�$�$�$�$�$��i�-�-�/�/�G��Y�,�,�.�.�F�9�d�i�9�4�4�4�4�4�4�=�7;�=�=�=�=�=�=�=�=�=�I�B��
�H�H�Y����+�+�+�+�+�+�+�+��"�"�7�#7�8�8�
�
��&��I�'�'��E�>�B�B�����������
�
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�
�
s�/6C2�2C6�9C6r�)r�r!r�rrGrr#r�r�r�r�r�rr�)rr�r�r�r�r�r�rs`   @@@@r�!test_start_tls_slow_client_cancelz.BaseStartTLS.test_start_tls_slow_client_cancel�s���������4�,�,�	�#�<�>�>��$(�I�$;�$;�$=�$=�!�
	�
	�
	�
	�
	�
	�
	�	-�	-�	-�	-�	-�	-�	-�'�*�	-�	-�	-�"	�	�	�	�	�	�	�	�	�$�_�_�U�D�L�_�
9�
9�	A�S��I�(�(�� �����!1�!1�)0�)>�@�@�@�
A�
A�
A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A����	A�	A�	A�	A�	A�	As�AC�C�Cc�.���������	�d�jz�d�tj���	tj���d������fd��G�fd�dtj�������	fd��������fd�}�j�|����dS)Nr�sanswerc����|��j��|�|��|�t	�����}��t	|��t	�����|����|����|�t	������|���dSr)	r�r��connectr�r�r�r�r�r))r�r�r��ANSWERr��answerr�rs   �����rr�z4BaseStartTLS.test_start_tls_server_1.<locals>.clients�����O�O�D�L�)�)�)��L�L������=�=��Y���0�0�D����S��Y�Y��I���7�7�7��N�N�>�*�*�*��L�L��#�#�#��]�]�3�v�;�;�/�/�F��J�J�L�L�L�L�Lrc�2��eZdZd�Zd�Zd�Z�fd�Zd�ZdS)�9BaseStartTLS.test_start_tls_server_1.<locals>.ServerProtoc�L�||_||_||_d|_d|_dSr�)�on_con�on_con_lost�on_got_hellor�r7)rr-r.r/s    rr�zBBaseStartTLS.test_start_tls_server_1.<locals>.ServerProto.__init__s+��$���#.�� �$0��!���	�!%����rc�H�||_|j�|��dSr)r7r-r��rr�s  rr6zIBaseStartTLS.test_start_tls_server_1.<locals>.ServerProto.connection_mades%��!#�����&�&�r�*�*�*�*�*rc��||_dSr)r7r1s  r�replace_transportzKBaseStartTLS.test_start_tls_server_1.<locals>.ServerProto.replace_transports
��!#����rc���|xj|z
c_t|j��t���kr|j�d��dSdSr)r�r�r/r�)rr�r�s  �rr�zGBaseStartTLS.test_start_tls_server_1.<locals>.ServerProto.data_receivedsU����	�	�T�!�	�	��t�y�>�>�S��^�^�3�7��%�0�0��6�6�6�6�6�7�7rc��d|_|�|j�d��dS|j�|��dSr)r7r.r��
set_exception)r�excs  rrZzIBaseStartTLS.test_start_tls_server_1.<locals>.ServerProto.connection_lost"sK��!%����8��$�/�/��5�5�5�5�5��$�2�2�3�7�7�7�7�7rN)rxryrzr�r6r3r�rZ)r�s�r�ServerProtor+sj�������
&�
&�
&�
+�
+�
+�
$�
$�
$�
7�
7�
7�
7�
7�

8�
8�
8�
8�
8rr8c���K�|�d{V��}|������|jd���j�||�	d�j����d{V��}|�|��|�d{V��|����|�d{V����|j���|���dS)NrT)r�r )rvr�r�rr�r�r3r))
rr-r.r/r�r�r(r�rr�s
      ����r�mainz2BaseStartTLS.test_start_tls_server_1.<locals>.main)s������������B��H�H�Y�������U�Z��-�-�-��9�.�.��E�>� �&*�l�/�4�4�4�4�4�4�4�4�F�
�#�#�F�+�+�+����������L�L�� � � ������������U�Z��3�3�3��L�L�N�N�N�N�Nrc	�����K��j���}�j���}�j���}�|||����j��fd�dd���d{V��}|jd��������	fd��j���5tj�
�|||���j����d{V��ddd��n#1swxYwY|�	��|�
���d{V��������dS)Nc����Srr)rs�rr�zHBaseStartTLS.test_start_tls_server_1.<locals>.run_main.<locals>.<lambda>Cs����rz	127.0.0.1rc����|���Srr)r�r�r�s ��rr�zHBaseStartTLS.test_start_tls_server_1.<locals>.run_main.<locals>.<lambda>Fs���f�f�T�4�.@�.@�rr�)rrG�
create_server�sockets�getsockname�
tcp_clientr�rr�r)�wait_closedr�)r-r.r/�serverr�rr(r8r)r�r:rs    @@������r�run_mainz6BaseStartTLS.test_start_tls_server_1.<locals>.run_main<s���������Y�,�,�.�.�F��)�1�1�3�3�K��9�2�2�4�4�L��K���\�B�B�E��9�2�2��
�
�
�{�A�/�/�/�/�/�/�/�/�F��>�!�$�0�0�2�2�D����!@�!@�!@�!@�!@�)-��!�7�7�
*�
*��&��D����\�B�B� �L�*�*�*�*�*�*�*�*�*�*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*�
*����
*�
*�
*�
*�
�L�L�N�N�N��$�$�&�&�&�&�&�&�&�&�&����V�V�,�,�,�,�,s�.C<�<D�D)r�r!r�r�rr#rr�)
rrDr(r�r8r)r�r�r:r�s
` @@@@@@@@r�test_start_tls_server_1z$BaseStartTLS.test_start_tls_server_1�s ������������4�,�,�	���#�<�>�>��#�<�>�>����	�	�	�	�	�	�	�	�	�	8�	8�	8�	8�	8�	8�	8�'�*�	8�	8�	8�6	�	�	�	�	�	�	�	�&	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�(	
�	�$�$�X�X�Z�Z�0�0�0�0�0rc�V���fd�}�j�|����dS)Nc���K���td��5�j�ddd���d{V��ddd��n#1swxYwYt	j��}��td��5�j�dd|���d{V��ddd��dS#1swxYwYdS)NzSSLContext, gotzis not supported)r<�	TypeErrorrr�r!r�)�sslctxrs �rr:z4BaseStartTLS.test_start_tls_wrong_args.<locals>.mainSsV������'�'�	�3D�E�E�
<�
<��i�)�)�$��d�;�;�;�;�;�;�;�;�;�
<�
<�
<�
<�
<�
<�
<�
<�
<�
<�
<����
<�
<�
<�
<� �8�:�:�F��'�'�	�3E�F�F�
>�
>��i�)�)�$��f�=�=�=�=�=�=�=�=�=�
>�
>�
>�
>�
>�
>�
>�
>�
>�
>�
>�
>����
>�
>�
>�
>�
>�
>s#�#A�A�A�#B7�7B;�>B;)rr�)rr:s` r�test_start_tls_wrong_argsz&BaseStartTLS.test_start_tls_wrong_argsRs@���	>�	>�	>�	>�	>�	
�	�$�$�T�T�V�V�,�,�,�,�,rc������tj���g��j��fd���d��fd�}��fd�}��|dd���5}��tj��5�j�||j	����ddd��n#1swxYwYddd��n#1swxYwY��
������g��tj
����tj���������dS)Nc�.����|��Sr��append�r�ctx�messagess  �rr�z5BaseStartTLS.test_handshake_timeout.<locals>.<lambda>c����(�/�/�#�:N�:N�rFc���	|�d��n#t$rd�YnwxYw|���dS#|���wxYw)NrT�r�r[r))r��server_side_aborteds �rrCz3BaseStartTLS.test_handshake_timeout.<locals>.servergsi���
��
�
�k�*�*�*�*��)�
+�
+�
+�&*�#�#�#�
+�����
�
��������
�
�������s!��A�(�A�(�A�Ac	���K�tj�jjtjg|�R�dt
jd��d���d{V��dS)N��r1�server_hostnamer r�)rr�rr�r#rr�)r��
client_sslctxrs ��rr�z3BaseStartTLS.test_handshake_timeout.<locals>.clientps�������"�+��	�+��$�A��A�A�&�$&�*1�*?�A�A�A����
�
�
�
�
�
�
�
�
rr���max_clients�backlog)r!r�r�set_exception_handlerr�r"rr#r�r�r^r�r�r�rr�rd)rrCr�r�rZrQrUs`   @@@r�test_handshake_timeoutz#BaseStartTLS.test_handshake_timeout]s�������#�;�=�=�
����	�'�'�(N�(N�(N�(N�O�O�O�#��	�	�	�	�	�	�	�	�	�	�	��_�_�V�)*�%&��(�(�	?�+.��"�"�7�#7�8�8�
?�
?��	�,�,�V�V�C�H�-=�-=�>�>�>�
?�
?�
?�
?�
?�
?�
?�
?�
?�
?�
?����
?�
?�
?�
?�		?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?����	?�	?�	?�	?�	
���+�,�,�,�	
����2�&�&�&� ��M�2�2�
���������-�-�/�/�*�*�*�*�*s6� C�<)B1�%C�1B5	�5C�8B5	�9C�C�Cc����tj���g�|j��fd���d�}�fd�}|�|dd���5}|�td��5|j�||j����ddd��n#1swxYwYddd��n#1swxYwY|�	�g��dS)Nc�.����|��SrrMrOs  �rr�zHBaseStartTLS.test_create_connection_ssl_slow_handshake.<locals>.<lambda>�rRrc��	|�d��n#t$rYnwxYw|���dS#|���wxYwrrT)r�s rrCzFBaseStartTLS.test_create_connection_ssl_slow_handshake.<locals>.server�sa��
��
�
�k�*�*�*�*��)�
�
�
���
�����
�
��������
�
�������s��>�
%�>�%�>�Ac��D�K�tj|�ddd���d{V��\}}dS)NrWg�?rX)r�open_connection�r��reader�writerrZs   �rr�zFBaseStartTLS.test_create_connection_ssl_slow_handshake.<locals>.client�sP�����#*�#:��!� "�&)�	$+�$+�$+�+�+�+�+�+�+�N�F�F�F�Frr�r[zSSL handshake.*is taking longer)
r!r�rr^r�r<r[r�r�r�)rrCr�r�rZrQs    @@r�)test_create_connection_ssl_slow_handshakez6BaseStartTLS.test_create_connection_ssl_slow_handshake�s�����"�;�=�=�
����	�'�'�(N�(N�(N�(N�O�O�O�	�	�	�	+�	+�	+�	+�	+��_�_�V�)*�%&��(�(�	?�+.��'�'�*�6�8�8�
?�
?��	�,�,�V�V�C�H�-=�-=�>�>�>�	
?�
?�
?�
?�
?�
?�
?�
?�
?�
?�
?����
?�
?�
?�
?�		?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?����	?�	?�	?�	?�	
����2�&�&�&�&�&s6�B=�1)B&�B=�&B*	�*B=�-B*	�.B=�=C�Cc�����|j�d���tj���tjd�����fd�}�fd�}|�|dd���5}|�tj��5|j�	||j
����ddd��n#1swxYwYddd��dS#1swxYwYdS)Nc��dSrr�rrPs  rr�zLBaseStartTLS.test_create_connection_ssl_failed_certificate.<locals>.<lambda>����$�rF)�disable_verifyc����	|��d���n #tj$rYnt$rYnwxYw|���dS#|���wxYw)NTr�)r�r1�SSLError�OSErrorr))r�rIs �rrCzJBaseStartTLS.test_create_connection_ssl_failed_certificate.<locals>.server�s����	
����� $��&�&�&�&���<�
�
�
����
�
�
���
�����
�
��������
�
�������s*��A�8�A�	8�A�8�A�A'c��X�K�tj|�dtjd���d{V��\}}dS)NrWrX)rrdr�LOOPBACK_TIMEOUTres   �rr�zJBaseStartTLS.test_create_connection_ssl_failed_certificate.<locals>.client�s\�����#*�#:��!� "�&-�&>�	$@�$@�$@�@�@�@�@�@�@�N�F�F�F�Frr�r[)rr^r!r�r�r�r"r1�SSLCertVerificationErrorr�r�)rrCr�r�rZrIs    @@r�-test_create_connection_ssl_failed_certificatez:BaseStartTLS.test_create_connection_ssl_failed_certificate�s������	�'�'�(>�(>�?�?�?��4�6�6��"�;� �"�"�"�
�
	�
	�
	�
	�
	�	@�	@�	@�	@�	@��_�_�V�)*�%&��(�(�	?�+.��"�"�3�#?�@�@�
?�
?��	�,�,�V�V�C�H�-=�-=�>�>�>�
?�
?�
?�
?�
?�
?�
?�
?�
?�
?�
?����
?�
?�
?�
?�		?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?����	?�	?�	?�	?�	?�	?s6�( C�)B=�1C�=C	�C�C	�C�C�Cc������j�d���tj���tj����fd�}��fd�}��|dd���5}�j�||j����}ddd��n#1swxYwY��|d��dS)Nc��dSrrrks  rr�zBBaseStartTLS.test_start_tls_client_corrupted_ssl.<locals>.<lambda>�rlrc���|���}	|��d���|�d��|�d��|�d��n#t
j$rYnwxYw|���|���dS#|���|���wxYw)NTr��A
r�s!please corrupt the SSL connection)�dupr�r�r��sendr1ror))r��	orig_sockrIs  �rrCz@BaseStartTLS.test_start_tls_client_corrupted_ssl.<locals>.server�s�������
�
�I�
����� $��&�&�&����V�$�$�$��
�
�a� � � ����C�D�D�D�D���<�
�
�
���
�������!�!�!��
�
����������!�!�!��
�
�������s*�AA.�-B-�.B�=B-�?B�B-�-*Cc���K�tj|�dd���d{V��\}}��|����d{V��d��|�d����tj��5|����d{V��ddd��n#1swxYwY|���dS)NrW)r1rYrx�B�OK)	rrdr��readlinervr"r1ror))r�rfrgrZrs   ��rr�z@BaseStartTLS.test_start_tls_client_corrupted_ssl.<locals>.client�s0�����#*�#:��!� "�$$�$$�$$�$�$�$�$�$�$�N�F�F�

���6�?�?�#4�#4�4�4�4�4�4�4�f�=�=�=��L�L������"�"�3�<�0�0�
(�
(��o�o�'�'�'�'�'�'�'�'�'�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(����
(�
(�
(�
(�
�L�L�N�N�N��4s�B(�(B,�/B,r�r[r~)	rr^r!r�r�r�r�r�r�)rrCr�r��resrZrIs`    @@r�#test_start_tls_client_corrupted_sslz0BaseStartTLS.test_start_tls_client_corrupted_ssl�s7������	�'�'�(>�(>�?�?�?��4�6�6��"�;�=�=�
�
	�
	�
	�
	�
	�	�	�	�	�	�	��_�_�V�)*�%&��(�(�	A�+.��)�.�.�v�v�c�h�/?�/?�@�@�C�		A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A����	A�	A�	A�	A�	
����d�#�#�#�#�#s�()B�B!�$B!N)rxryrzr�r�LONG_TIMEOUTr�r�r�r�r�rr$rErJr_rhrtr�rrrr}r}�s��������L��"�G�"�"�"�-H�-H�-H�^@,�@,�@,�D>,�>,�>,�@Y8�Y8�Y8�v;A�;A�;A�zW1�W1�W1�r	-�	-�	-�.+�.+�.+�`'�'�'�B?�?�?�B)$�)$�)$�)$�)$rr}c��eZdZd�ZdS)�SelectorStartTLSTestsc�(�tj��Sr)r�SelectorEventLoopr�s rr�zSelectorStartTLSTests.new_loop�����(�*�*�*rN�rxryrzr�rrrr�r��s#������+�+�+�+�+rr��ProactorEventLoopzWindows onlyc��eZdZd�ZdS)�ProactorStartTLSTestsc�(�tj��Sr)rr�r�s rr�zProactorStartTLSTests.new_loopr�rNr�rrrr�r�s#������+�+�+�+�+rr��__main__)�__doc__rTrc�unittestr��testrrr1�ImportErrorrrrr�test.test_asynciorr!r	�
func_testsr�skipIf�TestCaser�FunctionalTestCaseMixinr}r��
skipUnless�hasattrr�rxr:rrr�<module>r�st��$�$�����
�
�
�
�����������������������J�J�J�J������
�C�C�C���������������������������1�1�1�1�1�1�6�6�6�6�6�6�(�(�(�������o�.�.�E1�E1�E1�E1�E1�Z�0�E1�E1�/�.�E1�ZP	$�P	$�P	$�P	$�P	$�:�5�P	$�P	$�P	$�f������o�.�.�+�+�+�+�+�L�(�*;�+�+�/�.�+�������o�.�.����W�W�W�&9�:�:�N�K�K�+�+�+�+�+�L�(�*;�+�+�L�K�/�.�+��z����H�M�O�O�O�O�O��s�%�/�/