Packetizer — Paramiko documentation

# Packetizer

Packet handling

exception `paramiko.packet.` `NeedRekeyException`

  Exception indicating a rekey is needed.

  `__weakref__`

    list of weak references to the object (if defined)

class `paramiko.packet.` `Packetizer`(socket)

  Implementation of the base SSH packet protocol.

  `__weakref__`

    list of weak references to the object (if defined)

  `complete_handshake`()

    Tells `Packetizer` that the handshake has completed.

  `handshake_timed_out`()

    Checks if the handshake has timed out.

    If `start_handshake` wasn’t called before the call to this function, the return value will always be `False`. If the handshake completed before a timeout was reached, the return value will be `False`

    Returns: | handshake time out status, as a `bool`

  `need_rekey`()

    Returns `True` if a new set of keys needs to be negotiated. This will be triggered during a packet read or write, so it should be checked after every read or write, or at least after every few.

  `read_all`(n, check_rekey=False)

    Read as close to N bytes as possible, blocking as long as necessary.

    Parameters: | n (int) – number of bytes to read
    Returns: | the data read, as a `str`
    Raises: | `EOFError` – if the socket was closed before all the bytes could be read

  `read_message`()

    Only one thread should ever be in this function (no other locking is done).

    Raises: | `SSHException` – if the packet is mangled
    Raises: | `NeedRekeyException` – if the transport should rekey

  `readline`(timeout)

    Read a line from the socket. We assume no data is pending after the line, so it’s okay to attempt large reads.

  `send_message`(data)

    Write a block of data using the current cipher, as an SSH block.

  `set_inbound_cipher`(block_engine, block_size, mac_engine, mac_size, mac_key, etm=False)

    Switch inbound data cipher. :param etm: Set encrypt-then-mac from OpenSSH

  `set_keepalive`(interval, callback)

    Turn on/off the callback keepalive. If `interval` seconds pass with no data read from or written to the socket, the callback will be executed and the timer will be reset.

  `set_log`(log)

    Set the Python log object to use for logging.

  `set_outbound_cipher`(block_engine, block_size, mac_engine, mac_size, mac_key, sdctr=False, etm=False)

    Switch outbound data cipher. :param etm: Set encrypt-then-mac from OpenSSH

  `start_handshake`(timeout)

    Tells `Packetizer` that the handshake process started. Starts a book keeping timer that can signal a timeout in the handshake process.

    Parameters: | timeout (float) – amount of seconds to wait before timing out