pub struct Ssh {
pub client_version_exchange: Option<SshVersionExchange>,
pub server_version_exchange: Option<SshVersionExchange>,
pub key_exchange: Option<SshKeyExchange>,
pub client_dh_key_exchange: Option<SshDhInit>,
pub server_dh_key_exchange: Option<SshDhResponse>,
pub client_new_keys: Option<SshNewKeys>,
pub server_new_keys: Option<SshNewKeys>,
/* private fields */
}Expand description
Parsed SSH handshake contents.
Fields§
§client_version_exchange: Option<SshVersionExchange>Client protocol version exchange message.
server_version_exchange: Option<SshVersionExchange>Server protocol version exchange message.
key_exchange: Option<SshKeyExchange>Key Exchange message.
client_dh_key_exchange: Option<SshDhInit>Client Diffie-Hellman Key Exchange message.
server_dh_key_exchange: Option<SshDhResponse>Server Diffie-Hellman Key Exchange message.
client_new_keys: Option<SshNewKeys>Client New Keys message.
server_new_keys: Option<SshNewKeys>Server New Keys message.
Implementations§
Source§impl Ssh
impl Ssh
Sourcepub fn protocol_version_ctos(&self) -> &str
pub fn protocol_version_ctos(&self) -> &str
Returns the SSH protocol version used by the client (e.g. 2.0).
Sourcepub fn software_version_ctos(&self) -> &str
pub fn software_version_ctos(&self) -> &str
Returns the SSH software version used by the client.
Sourcepub fn comments_ctos(&self) -> &str
pub fn comments_ctos(&self) -> &str
Returns comments, or "" if there are no comments, in the protocol version exchange message sent from the client.
Sourcepub fn protocol_version_stoc(&self) -> &str
pub fn protocol_version_stoc(&self) -> &str
Returns the SSH protocol version used by the server (e.g. 2.0).
Sourcepub fn software_version_stoc(&self) -> &str
pub fn software_version_stoc(&self) -> &str
Returns the SSH software version used by the server.
Sourcepub fn comments_stoc(&self) -> &str
pub fn comments_stoc(&self) -> &str
Returns comments, or "" if there are no comments, in the protocol version exchange message sent from the server.
Returns the cookie used in SSH key exchange.
Sourcepub fn kex_algs_stoc(&self) -> Vec<String>
pub fn kex_algs_stoc(&self) -> Vec<String>
Returns the key exchange algorithms used in SSH key exchange.
Sourcepub fn server_host_key_algs_stoc(&self) -> Vec<String>
pub fn server_host_key_algs_stoc(&self) -> Vec<String>
Returns the algorithms supported for the server host key.
Sourcepub fn encryption_algs_ctos(&self) -> Vec<String>
pub fn encryption_algs_ctos(&self) -> Vec<String>
Returns the symmetric encryption algorithms (ciphers) supported by the client.
Sourcepub fn encryption_algs_stoc(&self) -> Vec<String>
pub fn encryption_algs_stoc(&self) -> Vec<String>
Returns the symmetric encryption algorithms (ciphers) supported by the server.
Sourcepub fn mac_algs_ctos(&self) -> Vec<String>
pub fn mac_algs_ctos(&self) -> Vec<String>
Returns the MAC algorithms supported by the client.
Sourcepub fn mac_algs_stoc(&self) -> Vec<String>
pub fn mac_algs_stoc(&self) -> Vec<String>
Returns the MAC algorithms supported by the server.
Sourcepub fn compression_algs_ctos(&self) -> Vec<String>
pub fn compression_algs_ctos(&self) -> Vec<String>
Returns the compression algorithms supported by the client.
Sourcepub fn compression_algs_stoc(&self) -> Vec<String>
pub fn compression_algs_stoc(&self) -> Vec<String>
Returns the compression algorithms supported by the server.
Sourcepub fn languages_ctos(&self) -> Vec<String>
pub fn languages_ctos(&self) -> Vec<String>
Returns the language tags (if any) supported by the client.
Sourcepub fn languages_stoc(&self) -> Vec<String>
pub fn languages_stoc(&self) -> Vec<String>
Returns the language tags (if any) supported by the server.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Ssh
impl RefUnwindSafe for Ssh
impl Send for Ssh
impl Sync for Ssh
impl Unpin for Ssh
impl UnsafeUnpin for Ssh
impl UnwindSafe for Ssh
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.