#[derive(Debug, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[non_exhaustive]
pub enum SshMessage {
Banner { banner: String },
KexInit(Box<SshKexInit>),
Encrypted,
}
#[derive(Debug, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
#[non_exhaustive]
pub struct SshKexInit {
pub from_client: bool,
pub kex_algorithms: Vec<String>,
pub server_host_key_algorithms: Vec<String>,
pub encryption_c2s: Vec<String>,
pub encryption_s2c: Vec<String>,
pub mac_c2s: Vec<String>,
pub mac_s2c: Vec<String>,
pub compression_c2s: Vec<String>,
pub compression_s2c: Vec<String>,
pub languages_c2s: Vec<String>,
pub languages_s2c: Vec<String>,
pub first_kex_packet_follows: bool,
pub hassh: String,
}