SshPacketReader¶
Constructors¶
create¶
Returns¶
- SshPacketReader iso^
Public Functions¶
set_decrypt_ctx¶
fun ref set_decrypt_ctx(
ctx: SshCipherContext ref,
mac_digest_len: USize val = 16,
is_aead: Bool val = true)
: None val
Parameters¶
- ctx: SshCipherContext ref
- mac_digest_len: USize val = 16
- is_aead: Bool val = true
Returns¶
- None val
set_gcm_params¶
Set up per-packet GCM decryption. A fresh cipher context is created per packet. iv must be 12 bytes. The last 8 bytes are incremented per packet.
Parameters¶
Returns¶
- None val
set_stream_cipher¶
Set up streaming decryption (CTR/CBC) with HMAC verification.
fun ref set_stream_cipher(
ctx: SshCipherContext ref,
mac_key: Array[U8 val] val,
mac_len: USize val,
block_size: USize val = 16,
use_sha512: Bool val = false)
: None val
Parameters¶
- ctx: SshCipherContext ref
- mac_key: Array[U8 val] val
- mac_len: USize val
- block_size: USize val = 16
- use_sha512: Bool val = false
Returns¶
- None val
clear_decrypt_ctx¶
Returns¶
- None val
append¶
Append incoming TCP bytes to the internal buffer.
Parameters¶
Returns¶
- None val
read¶
Try to read one complete packet from the buffer. Returns: - payload (Array[U8] val) on success - SshTransportError on protocol error - None if not enough data yet
Returns¶
- (Array[U8 val] val | SshTransportError | None val)
read_line¶
Scan the buffer for a line ending in \n. Returns the line content without the trailing \r\n (or \n), or None if no complete line yet.
Returns¶
sequence_number¶
Returns¶
- U32 val