SshChacha20Poly1305Context¶
chacha20-poly1305@openssh.com cipher context. Uses two ChaCha20 keys: main_key (payload) and header_key (packet length). Nonce is derived from the packet sequence number.
Constructors¶
create¶
Key material must be 64 bytes: main_key (0-31) || header_key (32-63).
Parameters¶
Returns¶
- SshChacha20Poly1305Context ref^ ?
Public Functions¶
encrypt¶
Encrypt a complete SSH packet (packet_length || padding_length || payload || padding). Returns: encrypted_length || encrypted_body || poly1305_tag
fun ref encrypt(
sequence_number: U32 val,
plaintext_packet: Array[U8 val] val)
: (Array[U8 val] val | SshCryptoError)
Parameters¶
Returns¶
- (Array[U8 val] val | SshCryptoError)
decrypt¶
Decrypt a chacha20-poly1305 packet. Input: encrypted_length(4) || encrypted_body(N) || tag(16) Returns: packet_length || padding_length || payload || padding
fun ref decrypt(
sequence_number: U32 val,
data: Array[U8 val] val)
: (Array[U8 val] val | SshCryptoError)
Parameters¶
Returns¶
- (Array[U8 val] val | SshCryptoError)