╭ changed ─────────────────╮ │src/serve_ssh_protocol.zig│ ╰──────────────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭───────────────────────────────────────────────────────────────────────────────────╮ │ 995 // + 32-byte header key); SHA256 produces 32, so each encrypt key is two hash│ │ 996 // blocks chained per RFC 4253. │ │ 997 pub const SessionKeys = struct { │ │ 998 - cs_iv: [16]u8, │ │ 999 - sc_iv: [16]u8, │ │ 998 cs_enc: [64]u8, │ │ 999 sc_enc: [64]u8, │ │1000 }; │ ╰───────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────╮ │1018 } │ │1019 try prefix.appendSlice(allocator, exchange_hash); │ │1020 │ │1023 - try deriveKey(allocator, prefix.items, 'A', session_id, &out.cs_iv); │ │1024 - try deriveKey(allocator, prefix.items, 'B', session_id, &out.sc_iv); │ │1021 try deriveKey(allocator, prefix.items, 'C', session_id, &out.cs_enc);│ │1022 try deriveKey(allocator, prefix.items, 'D', session_id, &out.sc_enc);│ │1023 } │ ╰───────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────╮ │1434 local_window: u32, // bytes peer may still send us before we adjust │ │1435 remote_window: u32, // bytes we may still send to peer before they adjust │ │1436 max_packet: u32, // max CHANNEL_DATA payload the peer accepts in one packet│ │1441 - eof_received: bool = false, │ │1437 pty: ?PtySize = null, │ │1438 }; │ │1439 │ ╰─────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────╮ │1517 }, │ │1518 │ │1519 SSH_MSG_CHANNEL_EOF => { │ │1525 - if (channel) |*c| { │ │1526 - try parseChannelId(packet, c.local_id); │ │1527 - c.eof_received = true; │ │1528 - } │ │1520 + if (channel) |*c| try parseChannelId(packet, c.local_id);│ │1521 }, │ │1522 │ │1523 SSH_MSG_CHANNEL_CLOSE => { │ ╰───────────────────────────────────────────────────────────────────────────────╯