Skip to content

SshPacketWriter

[Source]

class ref SshPacketWriter

Constructors

create

[Source]

new iso create()
: SshPacketWriter iso^

Returns


Public Functions

set_encrypt_ctx

[Source]

fun ref set_encrypt_ctx(
  ctx: SshCipherContext ref,
  is_aead: Bool val = true)
: None val

Parameters

Returns


set_chacha20_poly1305

[Source]

Set up chacha20-poly1305@openssh.com encryption. The context carries both keys; the packet sequence number is the nonce. There is no separate IV or MAC key. Packets align packet_length to an 8-byte boundary.

fun ref set_chacha20_poly1305(
  ctx: SshChacha20Poly1305Context ref)
: None val

Parameters

Returns


set_gcm_params

[Source]

Set up per-packet GCM encryption. A fresh cipher context is created per packet. iv must be 12 bytes. The last 8 bytes are incremented per packet.

fun ref set_gcm_params(
  key: Array[U8 val] val,
  iv: Array[U8 val] val)
: None val

Parameters

Returns


set_stream_cipher

[Source]

Set up streaming encryption (CTR) with HMAC. The cipher context persists across packets. MAC is HMAC-SHA256 or HMAC-SHA512.

fun ref set_stream_cipher(
  ctx: SshCipherContext ref,
  mac_key: Array[U8 val] val,
  mac_len: USize val,
  use_sha512: Bool val = false)
: None val

Parameters

Returns


write

[Source]

Frame a payload into an SSH binary packet. Returns the complete packet bytes ready for TCP.

fun ref write(
  payload: Array[U8 val] val,
  block_size: USize val = 8)
: Array[U8 val] iso^

Parameters

Returns


sequence_number

[Source]

fun box sequence_number()
: U32 val

Returns


reset_sequence_number

[Source]

Reset the outgoing sequence number to zero. Used after sending NEWKEYS under strict key exchange (Terrapin / CVE-2023-48795 mitigation), so the first packet under a new key starts at sequence 0.

fun ref reset_sequence_number()
: None val

Returns