iris_core/protocols/stream/ssh/
handshake.rs1use crate::utils::base64;
5
6use serde::Serialize;
7
8#[derive(Clone, Debug, Default, PartialEq, Serialize)]
10pub struct SshVersionExchange {
11 pub protoversion: Option<String>,
12 pub softwareversion: Option<String>,
13 pub comments: Option<String>,
14}
15
16#[derive(Debug, PartialEq, Serialize)]
18pub struct SshKeyExchange {
19 #[serde(with = "base64")]
20 pub cookie: Vec<u8>,
21 pub kex_algs: Vec<String>,
22 pub server_host_key_algs: Vec<String>,
23 pub encryption_algs_client_to_server: Vec<String>,
24 pub encryption_algs_server_to_client: Vec<String>,
25 pub mac_algs_client_to_server: Vec<String>,
26 pub mac_algs_server_to_client: Vec<String>,
27 pub compression_algs_client_to_server: Vec<String>,
28 pub compression_algs_server_to_client: Vec<String>,
29 pub languages_client_to_server: Vec<String>,
30 pub languages_server_to_client: Vec<String>,
31 pub first_kex_packet_follows: bool,
32}
33
34#[derive(Debug, Default, Serialize)]
36pub struct SshDhInit {
37 pub e: Vec<u8>,
38}
39
40#[derive(Debug, Default, Serialize)]
42pub struct SshDhResponse {
43 pub pubkey_and_certs: Vec<u8>,
44 pub f: Vec<u8>,
45 pub signature: Vec<u8>,
46}
47
48#[derive(Debug, Default, Serialize)]
49pub struct SshNewKeys;