403Webshell
Server IP : 138.197.107.151  /  Your IP : 216.73.217.120
Web Server : Apache/2.4.58 (Ubuntu)
System : Linux BloxBy-Builder 6.8.0-71-generic #71-Ubuntu SMP PREEMPT_DYNAMIC Tue Jul 22 16:52:38 UTC 2025 x86_64
User : wpbetasites_mrakzqskir ( 1022)
PHP Version : 8.3.6
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /proc/3492927/root/lib/python3/dist-packages/wsproto/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /proc/3492927/root/lib/python3/dist-packages/wsproto/__pycache__/handshake.cpython-312.pyc
�

21ctF���dZddlmZddlmZmZmZmZmZm	Z	m
Z
mZmZddl
Z
ddlmZmZmZddlmZmZmZmZmZddlmZdd	lmZdd
lmZmZmZmZm Z m!Z!dZ"Gd�d
�Z#dee$de	ede
e%fd�Z&dee$deede	efd�Z'y)zR
wsproto/handshake
~~~~~~~~~~~~~~~~~~

An implementation of WebSocket handshakes.
�)�deque)	�cast�Deque�Dict�	Generator�Iterable�List�Optional�Sequence�UnionN�)�
Connection�ConnectionState�ConnectionType)�AcceptConnection�Event�RejectConnection�
RejectData�Request)�	Extension)�Headers)�generate_accept_token�generate_nonce�LocalProtocolError�normed_header_dict�RemoteProtocolError�split_comma_headers13c�B�eZdZdZdeddfd�Zedefd��Zede	e
fd��Zded	e
eefddfd
�Zdedefd�Zd
e	eddfd�Zdeeddffd�Zdej.defd�Zdedefd�Zdedefd�Zdedefd�Zdedefd�Zdej@defd�Z!defd�Z"y)�H11Handshakez4A Handshake implementation for HTTP/1.1 connections.�connection_type�returnNc�^�|tju|_tj|_|jr)t
jtj�|_n(t
jtj�|_d|_
t�|_d|_
d|_y�N)r�CLIENT�clientr�
CONNECTING�_state�h11r�_h11_connection�SERVER�_connectionr�_events�_initiating_request�_nonce)�selfr s  �3/usr/lib/python3/dist-packages/wsproto/handshake.py�__init__zH11Handshake.__init__*sr��%��)>�)>�>���%�0�0����;�;�#&�>�>�#�*�*�#=�D� �#&�>�>�#�*�*�#=�D� �15���%*�W���6:�� �'+���c��|jSr#)r'�r/s r0�statezH11Handshake.state8s���{�{�r2c��|jS)z�Return the established connection.

        This will either return the connection or raise a
        LocalProtocolError if the connection has not yet been
        established.

        :rtype: h11.Connection
        )r+r4s r0�
connectionzH11Handshake.connection<s�����r2�headers�pathc���|jrtd��tjd||��}tjtj
�}|j
|j|��y)z�Initiate an upgrade connection.

        This should be used if the request has already be received and
        parsed.

        :param list headers: HTTP headers represented as a list of 2-tuples.
        :param str path: A URL path.
        z?Cannot initiate an upgrade connection when acting as the client�GET��method�targetr8N)r%rr(rrr$�receive_data�send)r/r8r9�upgrade_request�
h11_clients     r0�initiate_upgrade_connectionz(H11Handshake.initiate_upgrade_connectionHsX���;�;�$�Q��
��+�+�V�D�'�R���^�^�C�J�J�/�
����*�/�/�/�:�;r2�eventc�T�d}t|t�r||j|�z
}|St|t�r||j	|�z
}|St|t
�r||j
|�z
}|St|t�r||j|�z
}|Std|�d���)a
Send an event to the remote.

        This will return the bytes to send based on the event or raise
        a LocalProtocolError if the event is not valid given the
        state.

        :returns: Data to send to the WebSocket peer.
        :rtype: bytes
        r2zEvent z$ cannot be sent during the handshake)
�
isinstancer�_initiate_connectionr�_acceptr�_rejectr�_send_reject_datar�r/rD�datas   r0r@zH11Handshake.send[s������e�W�%��D�-�-�e�4�4�D�����/�
0��D�L�L��'�'�D�����/�
0��D�L�L��'�'�D���
��z�
*��D�*�*�5�1�1�D�
��%����C�D��
r2rLc�~�|jj|xsd�		|jj�}t
|tj�s$|tjus|tjury	|j�r�t
|tj�r�|jdk(r,|jj|j|���n�|jjtt!|j"�|jd���t$j&|_�nYt
|tj*�rZt$j,|_|jjtt!|j"�|jd���n�t
|tj.�r1|jjt1|j2d���n�t
|tj4�r�|jjt1dd���t$j&|_nDt
|tj6�r*|jj|j9|����r#tj$rt	dt����wxYw)
z�Receive data from the remote.

        A list of events that the remote peer triggered by sending
        this data can be retrieved with :meth:`events`.

        :param bytes data: Data received from the WebSocket peer.
        r2TzBad HTTP message��
event_hint�eF)r8�status_code�has_body)rL�
body_finishedN)r)r?�
next_eventr(rrrF�ConnectionClosed�	NEED_DATA�PAUSEDr%�InformationalResponserQr,�append�_establish_client_connection�listr8r�CLOSEDr'�Response�	REJECTING�DatarrL�EndOfMessager�_process_connection_request)r/rLrDs   r0r?zH11Handshake.receive_datats���	
���)�)�$�+�#�6��
��,�,�7�7�9���5�#�"6�"6�7��C�M�M�)��C�J�J�&���{�{��e�S�%>�%>�?��(�(�C�/����+�+�D�,M�,M�e�,T�U����+�+�,�(,�U�]�]�(;�,1�,=�,=�).���'6�&<�&<�����s�|�|�4�"1�";�";�D�K��L�L�'�'�(�$(����$7�(-�(9�(9�%)��� ��s�x�x�0��L�L�'�'�"��
�
�%�H�� ��s�'7�'7�8��L�L�'�'�
��4�(P�Q�"1�"8�"8�D�K��e�S�[�[�1��L�L�'�'��(H�(H��(O�P�[���*�*�
�)�&�3C�3E���
�s�J�)J<c#�xK�|jr*|jj���|jr�)yy�w)z�Return a generator that provides any events that have been generated
        by protocol activity.

        :returns: a generator that yields H11 events.
        N)r,�popleftr4s r0�eventszH11Handshake.events�s+�����l�l��,�,�&�&�(�(��l�l�s�5:�:c	��|jdk7rtdt����d}g}d}d}g}d}d}g}	|jD]�\}
}|
j	�}
|
dk(rt|�}nn|
dk(r|j
d�}�>|
dk(r|jt|���^|
d	k(r|}n/|
d
k(r|jt|����|
dk(r|}n|
dk(r|}|	j|
|f���|�td
�|D��stdt����|tk7r#tdtdtfg|rdnd�����|�tdt����|j	�dk7rtdt����|�tdt����t||	|||jj
d���|_
|jS)Nr;zRequest method must be GETrNr2�
connectionshost�idna�sec-websocket-extensions�sec-websocket-key�sec-websocket-protocolssec-websocket-version�upgradec3�BK�|]}|j�dk(���y�w��upgradeN��lower��.0�tokens  r0�	<genexpr>z;H11Handshake._process_connection_request.<locals>.<genexpr>�� ����0
�+0�E�K�K�M�Y�&�0
����%Missing header, 'Connection: Upgrade'z'Missing header, 'Sec-WebSocket-Version'�Sec-WebSocket-Versioni�i�)r8rQz#Missing header, 'Sec-WebSocket-Key'�	websocket�$Missing header, 'Upgrade: WebSocket'zMissing header, 'Host'�ascii)�
extensions�
extra_headers�host�subprotocolsr>)r=rrr8rpr�decode�extendrY�any�WEBSOCKET_VERSIONrr>r-)r/rD�connection_tokensr|r~�keyrrn�versionr8�name�values            r0raz(H11Handshake._process_connection_request�s���<�<�6�!�%�,�9I�9K��
�!�� "�
�����"$�������� �=�=�	*�K�D�%��:�:�<�D��}�$�$6�u�$=�!�����|�|�F�+����4�4��!�!�"4�U�";�<���-�-����2�2��#�#�$6�u�$=�>���1�1�����#����N�N�D�%�=�)�'	*�(�$�C�0
�4E�0
�-
�&�7�DT�DV��
��'�'�%�9�+�6�8I�J�K�'.��C���
��;�%�5�BR�BT��
��=�=�?�l�*�%�6�CS�CU��
��<�%�(�5E�5G��
�$+�!�!��%��<�<�&�&�w�/�$
�� ��'�'�'r2c�h�|j�J�t|jj�}|d}t|�}ddd|fg}|j�f|j|jj
vrt
d|j����|jd|jjd�f�|jrTtttt|jj�|j�}|r|jd|f�tjd	||jz�
�}t!|j"rt$j&nt$j(|j�|_t,j.|_|j2j5|�xsdS)Nri��Upgrades	WebSocket�s
Connectionr�sSec-WebSocket-Acceptzunexpected subprotocol �Sec-WebSocket-Protocolr{�Sec-WebSocket-ExtensionsrP�rQr8r2)r-rr}r�subprotocolrrrY�encoder|�server_extensions_handshakerr�strr(rXrr%rr$r*r+r�OPENr'r)r@)r/rD�request_headers�nonce�accept_tokenr8�accepts�responses        r0rHzH11Handshake._accept�s����'�'�3�3�3�,�T�-E�-E�-S�-S�T��� 4�5��,�U�3��
'�'�
$�l�3�
�����(�� � ��(@�(@�(M�(M�M�(�+B�5�CT�CT�BU�)V�W�W��N�N�*�E�,=�,=�,D�,D�W�,M�N�
����1��X�c�]�D�$<�$<�$G�$G�H�� � ��G����� ;�W�E�F��,�,��W�u�/B�/B�%B�
��&�%)�[�[�N�!�!�n�6K�6K����
���&�*�*����#�#�(�(��2�9�c�9r2c�(�|jtjk7rtd|jz��t	|j
�}|js|jd�tj|j|��}|jj|�xsd}tj|_|jsI||jjtj��xsdz
}tj |_|S)Nz)Connection cannot be rejected in state %s)scontent-length�0r�r2)r5rr&rr[r8rRrYr(r]rQr)r@r^r'r`r\)r/rDr8r�rLs     r0rIzH11Handshake._reject%s����:�:��3�3�3�$�;�d�j�j�H��
��u�}�}�%���~�~��N�N�4�5��<�<�E�,=�,=�w�O���#�#�(�(��2�9�c��%�/�/����~�~��D�(�(�-�-�c�.>�.>�.@�A�H�S�H�D�)�0�0�D�K��r2c��|jtjk7rtd|j����|jjt
j|j���xsd}|jrI||jjt
j��xsdz
}tj|_|S)Nz$Cannot send rejection data in state )rLr2)
r5rr^rr)r@r(r_rLrSr`r\r'rKs   r0rJzH11Handshake._send_reject_data6s����:�:��2�2�2�$�6�t�z�z�l�C��
��#�#�(�(����u�z�z�)B�C�J�s������D�(�(�-�-�c�.>�.>�.@�A�H�S�H�D�)�0�0�D�K��r2�requestc��||_t�|_d|jj	d�fddd|jfdt
fg}|jr;|jddj|j�j	d	�f�|jr�i}|jD]1}t|t�sJ�|j�||j<�3g}|j�D]`\}}|j	d	�}t|t�r|s�*|j|��<|jd
||j	d	�fz��b|r"|jddj|�f�t!j"d
|j$j	d	�||j&z��}	|j(j+|	�xsdS)NsHostrgr�r�sSec-WebSocket-Keyrxr�z, r{�%s; %sr��, r;r<r2)r-rr.r~r�r�rrY�joinr|rFr�offerr��items�boolr(rr>r}r)r@)
r/r�r8�offers�er|r��params�bnamerns
          r0rGz!H11Handshake._initiate_connectionDs���#*�� �$�&����g�l�l�)�)�&�1�2�&�'�
!�4�;�;�/�
%�'8�9�
������N�N�-��Y�Y�w�3�3�4�<�<�W�E��
����24�F��'�'�
+��!�!�Y�/�/�/�!"�����q�v�v��
+��J� &����
S���f����G�,���f�d�+��"�)�)�%�0��%�%�i�5�&�-�-��:P�2Q�&Q�R�

S����� ;�U�Z�Z�
�=S�T�U��+�+���>�>�(�(��1��g�3�3�3�
��
�#�#�(�(��1�8�S�8r2c��|j�J�|j�J�d}d}g}d}d}g}|jD]q\}}	|j�}|dk(rt	|	�}�'|dk(rt	|	�}�8|dk(r|	}�@|dk(r|	jd�}�W|dk(r|	}�_|j
||	f��s|�td�|D��std	t��
��|j�dk7rtdt��
��t|j�}
||
k7rtd
t��
��|�0||jjvrtd|��t��
��t|ttt|jj ��}t#|j$rt&j(nt&j*||j,j.d�|_t2j4|_t9|||��S)Nr2rfrhssec-websocket-acceptrjr{rkc3�BK�|]}|j�dk(���y�wrmrorqs  r0rtz<H11Handshake._establish_client_connection.<locals>.<genexpr>�rurvrwrNryrzzBad accept tokenzunrecognized subprotocol r)r|r}r�)r-r.r8rprr�rYr�rrrr�client_extensions_handshakerrrr|rr%rr$r*r)�
trailing_datar+rr�r'r)r/rD�acceptr�r�r�rnr8r�r�r�r|s            r0rZz)H11Handshake._establish_client_connectionos"���'�'�3�3�3��{�{�&�&�&��� ���������� �=�=�	*�K�D�%��:�:�<�D��}�$�$6�u�$=�!���4�4�,�U�3����0�0�����2�2�#�l�l�7�3�����#�����N�N�D�%�=�)�#	*�&�$�C�0
�4E�0
�-
�&�7�DT�DV��
��=�=�?�l�*�%�6�CS�CU��
�-�T�[�[�9���\�!�%�&8�EU�EW�X�X��"��$�":�":�"G�"G�G�)�/��}�=�/�1���1��T�(�9�-�t�/G�/G�/R�/R�S�
�
�&�%)�[�[�N�!�!�n�6K�6K��� � �.�.�q�1�
���
&�*�*����!��k�
�	
r2c�x�dj|jj|j|j�S)Nz{}(client={}, state={}))�format�	__class__�__name__r%r5r4s r0�__repr__zH11Handshake.__repr__�s.��(�/�/��N�N�#�#�T�[�[�$�*�*�
�	
r2)#r��
__module__�__qualname__�__doc__rr1�propertyrr5r
rr7rr�bytesr�rCrr@r?rrdr(rrarrHrrIrrJrGrXrZr��r2r0rr'sT��>�,��,�4�,��������	 �H�Z�0�	 ��	 �<��<�&+�E�3�J�&7�<�	
�<�&�%��E��26Q��%��6Q�T�6Q�p)�	�%��t�"3�4�)�E(��[�[�E(�	�E(�N%:�-�%:�%�%:�N�-��%��"
�z�
�e�
�)9�G�)9��)9�V?
��.�.�?
�	�?
�B
�#�
r2r�	requested�	supportedr!c�\�i}|D]�}|jdd�dj�}|D]g}|j|k(s�|j|�}t	|t
�r|s�7d||j<�G|��J|j
d�||j<�i��|r�g}|j�D]l\}}|j
d�}	t	|t
�r|sJ�|j|	��=|dk(r|jd|	z��W|jd	|	|fz��nd
j|�Sy)z�Agree on the extensions to use returning an appropriate header value.

    This returns None if there are no agreed extensions
    �;r
rTNr{r2s%sr�r�)
�split�stripr�r�rFr�r�r�rYr�)
r�r�r�r�r��	extensionr�r|r��
name_bytess
          r0r�r��s5��.0�G��	E���{�{�3��"�1�%�+�+�-��"�	E�I��~�~��%�"�)�)�%�0���f�d�+��26��	���/��'�.4�m�m�G�.D�G�I�N�N�+�	E�	E��"$�
�#�M�M�O�		H�L�D�&����W�-�J��&�$�'��
�v��!�!�*�-��S�=��%�%�e�z�&:�;��%�%�i�:�v�2F�&F�G�		H��z�z�*�%�%�r2�acceptedc��g}|D]v}|jdd�dj�}|D]5}|j|k(s�|j|�|j	|��_td|��t
����|S)Nr�r
rzunrecognized extension rN)r�r�r��finalizerYrr)r�r�r|r�r�r�s      r0r�r��s���
�J��
���|�|�C��#�A�&�,�,�.��"�	�I��~�~��%��"�"�6�*��!�!�)�,��		�&�)�$��0�=M�=O��
�
��r2)(r��collectionsr�typingrrrrrr	r
rrr(r7rrrrdrrrrrr|rr�	utilitiesrrrrrrr�rr�r�r�r�r�r2r0�<module>r�s�����
�
�
��C�C�R�R�!������L
�L
�^!���}�!�)-�i��!�
�e�_�!�H��s�m��(0��(;��	�)�_�r2

Youez - 2016 - github.com/yon3zu
LinuXploit