File: //usr/local/CyberCP/lib/python3.10/site-packages/paramiko/__pycache__/packet.cpython-310.pyc
o
�h�V � @ s� d Z ddlZddlZddlZddlZddlZddlZddlmZ ddl m
Z
ddlmZm
Z
mZmZmZmZmZ ddlmZ ddlmZmZ ddlmZ d d
� ZG dd� de�Zd
d� ZG dd� d�ZdS )z
Packet handling
� N)�HMAC)�util)�
linefeed_byte�
cr_byte_value� MSG_NAMES�DEBUG� xffffffff� zero_byte�byte_ord)�u)�SSHException�ProxyCommandFailure)�Messagec C s t | ||��� S �N)r �digest)�key�message�digest_class� r �B/usr/local/CyberCP/lib/python3.10/site-packages/paramiko/packet.py�compute_hmac. s r c @ s e Zd ZdZdS )�NeedRekeyExceptionz1
Exception indicating a rekey is needed.
N)�__name__�
__module__�__qualname__�__doc__r r r r r 2 s r c C s. d }t | j�tu rt| j�dkr| jd }|S �Nr )�type�args�tuple�len)�e�argr r r � first_arg: s
r# c @ s8 e Zd ZdZedd�Zedd�Zedd�Zedd�Zdd� Z e
dd� �Zdd � Zd
d� Z
dd
� Z dBdd�Z dCdd�Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zdd � Zd!d"� Zd#d$� Zd%d&� Zd'd(� Zd)d*� Zd+d,� ZdCd-d.�Zd/d0� Zd1d2� Z d3d4� Z!d5d6� Z"d7d8� Z#d9d:� Z$d;d<� Z%d=d>� Z&d?d@� Z'dAS )D�
Packetizerz9
Implementation of the base SSH packet protocol.
� � c C s� || _ d | _d| _d| _d| _d| _t� | _d| _d| _ d| _
d| _d| _d| _
d| _d| _d| _d| _d| _d | _d | _d| _d | _d | _t� | _t� | _d | _d | _d| _d| _d| _d| _t �!� | _"d| _#t$�$� | _%d | _&d | _'d| _(d| _)d S )NFr � )*�_Packetizer__socket�_Packetizer__logger�_Packetizer__closed�_Packetizer__dump_packets�_Packetizer__need_rekey�_Packetizer__init_count�bytes�_Packetizer__remainder�_initial_kex_done�_Packetizer__sent_bytes�_Packetizer__sent_packets�_Packetizer__received_bytes�_Packetizer__received_packets�$_Packetizer__received_bytes_overflow�&_Packetizer__received_packets_overflow�_Packetizer__block_size_out�_Packetizer__block_size_in�_Packetizer__mac_size_out�_Packetizer__mac_size_in�_Packetizer__block_engine_out�_Packetizer__block_engine_in�_Packetizer__sdctr_out�_Packetizer__mac_engine_out�_Packetizer__mac_engine_in�_Packetizer__mac_key_out�_Packetizer__mac_key_in� _Packetizer__compress_engine_out�_Packetizer__compress_engine_in� _Packetizer__sequence_number_out�_Packetizer__sequence_number_in�_Packetizer__etm_out�_Packetizer__etm_in� threading�RLock�_Packetizer__write_lock�_Packetizer__keepalive_interval�time�_Packetizer__keepalive_last�_Packetizer__keepalive_callback�_Packetizer__timer�_Packetizer__handshake_complete�_Packetizer__timer_expired)�self�socketr r r �__init__Q sL
zPacketizer.__init__c C � | j S r )r* �rR r r r �closed� s zPacketizer.closedc C �
d| _ d S r )rD rV r r r �reset_seqno_out� �
zPacketizer.reset_seqno_outc C rX r )rE rV r r r �reset_seqno_in� rZ zPacketizer.reset_seqno_inc C s
|| _ dS )z?
Set the Python log object to use for logging.
N)r) )rR �logr r r �set_log� s
zPacketizer.set_logFc C sb || _ || _|| _|| _|| _|| _d| _d| _|| _| j dO _ | j dkr/d| _ d| _
dS dS )zd
Switch outbound data cipher.
:param etm: Set encrypt-then-mac from OpenSSH
r � � FN)r; r= r7 r>