Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/ssl_servers.cpython-311.pyc
�

�Keo���ddlZddlZddlZddlZddlZddlZddlmZ	m
Z
mZddlm
Z
ddlmZej�e��ZejZej�ed��ZGd�de	��ZGd�d	e
��ZGd
�de��ZGd�d
ej��Zdeedd�d�Zedk�r�ddlZejd���Z e �!dde"dd���e �!dddddd���e �!dd d!d"d#d$���e �!d%d&e#d'd(�)��e �!d*d+e#d,�-��e �!d.d/e#d'd0�)��e �$��Z%e%j&e
_&e%j'reZ(neZ(ej)��e(_*ej+ej,j-��Z.e.�/e��e%j0re.�1e%j0��e%j2re.�3e%j2��e%j4re.�5e%j4��ed1e%j6fe(e.��Z7e%j&re8d2�9e%����e7�:d3��dSdS)4�N)�
HTTPServer�SimpleHTTPRequestHandler�BaseHTTPRequestHandler)�support)�
socket_helperzkeycert.pemc� �eZdZd�Zd�Zd�ZdS)�HTTPSServerc�@�tj|||��||_dS�N)�_HTTPServer�__init__�context)�self�server_address�
handler_classrs    �:/usr/local/apps/python3/lib/python3.11/test/ssl_servers.pyr
zHTTPSServer.__init__s"����T�>�=�A�A�A������c�B�d|jj�d|j�d|j�d�S)N�<� �:�>)�	__class__�__name__�server_name�server_port�rs r�__str__zHTTPSServer.__str__s4�����(�(�(��!�!�!��!�!�!�#�	$rc��	|j���\}}|j�|d���}nA#t$r4}t
jr"tj�	d|z���d}~wwxYw||fS)NT)�server_sidezGot an error:
%s
)
�socket�acceptr�wrap_socket�OSErrorr�verbose�sys�stderr�write)r�sock�addr�sslconn�es     r�get_requestzHTTPSServer.get_request!s���	���+�+�-�-�J�D�$��l�.�.�t��.�F�F�G�G���	�	�	���
<��
� � �!6��!:�;�;�;������		����
��}�s�8;�
A9�/A4�4A9N)r�
__module__�__qualname__r
rr-�rrr	r	sA���������$�$�$�
�
�
�
�
rr	c�0�eZdZdZeZejZd�Z	d�Z
dS)�RootedHTTPRequestHandlerz
TestHTTPS/1.0c���tj�|��d}tj�tj�|����}|�d��}td|��}|j	}|D]f}tj�
|��\}}tj�|��\}}tj�||��}�g|S)z�Translate a /-separated PATH to the local filename syntax.

        Components that mean special things to the local file system
        (e.g. drive or directory names) are ignored.  (XXX They should
        probably be diagnosed.)

        ��/N)�urllib�parse�urlparse�os�path�normpath�unquote�split�filter�root�
splitdrive�join)rr:�words�word�drive�heads      r�translate_pathz'RootedHTTPRequestHandler.translate_path7s����|�$�$�T�*�*�1�-���w����� 4� 4�T� :� :�;�;���
�
�3�����t�U�#�#���y���	,�	,�D��'�,�,�T�2�2�K�E�4�����t�,�,�J�D�$��7�<�<��d�+�+�D�D��rc	���tjritj�d|jj|jj|j�	��|�
��||zfz��dSdS)Nz server (%s:%d %s):
   [%s] %s
)rr%r&�stdoutr(�serverrr�request�cipher�log_date_time_string�r�format�argss   r�log_messagez$RootedHTTPRequestHandler.log_messageKs~���?�	,��J���@�"�k�8�"�k�5�"�l�1�1�3�3�"�7�7�9�9�$�T�k�	+�+�
,�
,�
,�
,�
,�	,�	,rN)rr.r/�server_version�herer?r�LOOPBACK_TIMEOUT�timeoutrFrPr0rrr2r2-sF������
%�N��D��&�G����(,�,�,�,�,rr2c�*�eZdZdZdZdd�Zd�Zd�ZdS)	�StatsRequestHandlerzSExample HTTP request handler which returns SSL statistics on GET
    requests.
    zStatsHTTPS/1.0Tc��|jjj}|j}|���|���|���d�}tj|��}|�	d��}|�
d��|�dd��|�dtt|������|���|r|j�|��dSdS)zServe a GET request.)�
session_cacherK�compressionzutf-8��zContent-typeztext/plain; charset=utf-8zContent-LengthN)�rfile�raw�_sockr�
session_statsrKrY�pprint�pformat�encode�
send_response�send_header�str�len�end_headers�wfiler()r�	send_bodyr)r�stats�bodys      r�do_GETzStatsRequestHandler.do_GET]s����z�~�#���,��$�2�2�4�4��k�k�m�m��+�+�-�-����
�~�e�$�$���{�{�7�#�#�����3��������)D�E�E�E����)�3�s�4�y�y�>�>�:�:�:��������	#��J���T�"�"�"�"�"�	#�	#rc�2�|�d���dS)zServe a HEAD request.F)rhN)rkrs r�do_HEADzStatsRequestHandler.do_HEADos�����e��$�$�$�$�$rc�H�tjrtj||g|�R�dSdSr)rr%r�log_requestrMs   rrozStatsRequestHandler.log_requestss:���?�	D�"�.�t�V�C�d�C�C�C�C�C�C�	D�	DrN)T)rr.r/�__doc__rQrkrmror0rrrVrVVs\��������&�N�#�#�#�#�$%�%�%�D�D�D�D�DrrVc�4�eZdZedfd�Zd�Zdd�Zd�Zd�ZdS)�HTTPSServerThreadNc��d|_t|df|pt|��|_|jj|_tj�|��d|_	dS)NrT)
�flagr	r2rIr�port�	threading�Threadr
�daemon)rr�hostrs    rr
zHTTPSServerThread.__init__zs\����	�!�4��)�"/�"K�3K�")�+�+����K�+��	���!�!�$�'�'�'�����rc�2�d|jj�d|j�d�S)Nrrr)rrrIrs rrzHTTPSServerThread.__str__�s ��� �N�3�3�3�T�[�[�[�A�Arc�R�||_tj�|��dSr)rtrvrw�start)rrts  rr|zHTTPSServerThread.start�s&����	�����t�$�$�$�$�$rc���|jr|j���	|j�d��|j���dS#|j���wxYw)Ng�������?)rt�setrI�
serve_forever�server_closers r�runzHTTPSServerThread.run�sj���9�	��I�M�M�O�O�O�	'��K�%�%�d�+�+�+��K�$�$�&�&�&�&�&��D�K�$�$�&�&�&�&���s�A�A2c�8�|j���dSr)rI�shutdownrs r�stopzHTTPSServerThread.stop�s����������rr)	rr.r/�HOSTr
rr|r�r�r0rrrrrrxsq������%)������B�B�B�%�%�%�%�'�'�'�����rrr)r�certfileryrc�J��|�#tjtjj��}|�|��t|||���t
j��}��|��|�	���fd�}|�
|���S)Nc���tjrtj�d������tjrtj�d������dS)Nzstopping HTTPS server
zjoining HTTPS thread
)rr%r&rHr(r�rA)rIs�r�cleanupz"make_https_server.<locals>.cleanup�sc����?�	8��J���6�7�7�7����
�
�
��?�	7��J���5�6�6�6����
�
�
�
�
r)�ssl�create_default_context�Purpose�CLIENT_AUTH�load_cert_chainrrrv�Eventr|�wait�
addCleanup)�caserr�ryrrtr�rIs       @r�make_https_serverr��s�������,�S�[�-D�E�E�����H�%�%�%�
�w��m�
<�
<�F��?���D�
�L�L������I�I�K�K�K������	�O�O�G�����Mr�__main__zERun a test HTTPS server. By default, the current directory is served.)�descriptionz-pz--portiQz(port to listen on (default: %(default)s))�type�default�helpz-qz--quietr%T�store_falsezbe less verbose)�destr��actionr�z-sz--stats�use_stats_handlerF�
store_truezalways return stats pagez--curve-name�
curve_name�storez&curve name for EC-based Diffie-Hellman)r�r�r�r�z	--ciphers�cipherszallowed cipher list)r�r�r�z--dh�dh_filez!PEM file containing DH parameters�z'Listening on https://localhost:{0.port}g�������?);r9r&r�r_rv�urllib.parser6�http.serverrrrr�testr�test.supportrr:�dirname�__file__rRr�rA�CERTFILEr	r2rVrwrrr�r�argparse�ArgumentParser�parser�add_argument�intrd�
parse_argsrOr%r�r�getcwdr?r�r�r�rr�r��set_ecdh_curver��load_dh_paramsr��set_ciphersrurI�printrNrr0rr�<module>r�s��	�	�	�	�
�
�
�
�
�
�
�
�
�
�
�
���������6�6�6�6�6�6�6�6�6�6�������&�&�&�&�&�&�	�w���x� � �����
�7�<�<��m�,�,�������+����0&,�&,�&,�&,�&,�7�&,�&,�&,�RD�D�D�D�D�0�D�D�D�D�����	�(����<(,�h��t������*�z����O�O�O�
$�X�
$�C�D�D�D�F�����h�S�$�G��I�I�I�
����i�i��,�3D��F�F�F�
����i�.A�5�+�2L��N�N�N�
����\��&�E��G�G�G�����)�#�2��4�4�4�
����Y�S��@��B�B�B������D��l�G�O���)�+�
�
�0�
�&�R�Y�[�[�
��(�c�(���)@�A�A�G����H�%�%�%���0����t��/�/�/��|�-����t�|�,�,�,��|�*����D�L�)�)�)�
�[�"�d�i��-��
A�
A�F��|�F�
��7�>�>�t�D�D�E�E�E�
���������M�r