40 lines
918 B
Rust
40 lines
918 B
Rust
pub mod password;
|
|
pub mod ssh_key;
|
|
|
|
use std::ffi::CStr;
|
|
|
|
use crate::ser::CStrAsBytes;
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
pub struct Hello<'a> {
|
|
#[serde(borrow)]
|
|
pub username: &'a str,
|
|
#[serde(borrow)]
|
|
pub auth_method: Method<'a>,
|
|
}
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
pub enum Method<'a> {
|
|
Password,
|
|
SshKey {
|
|
/// [Public key](::ssh_key::public::PublicKey).
|
|
#[serde(borrow)]
|
|
public_key: &'a str,
|
|
},
|
|
}
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
pub enum Question<'a> {
|
|
Prompt { #[serde(borrow)] prompt: CStrAsBytes<'a>, echo: bool },
|
|
TextInfo(#[serde(borrow)] CStrAsBytes<'a>),
|
|
ErrorMsg(#[serde(borrow)] CStrAsBytes<'a>),
|
|
//SshAuthRequest(ssh_key::AuthRequest<'a>),
|
|
LoggedIn,
|
|
}
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
enum Answer<'a> {
|
|
Prompt(#[serde(borrow)] CStrAsBytes<'a>),
|
|
//SshAuthResponse(ssh_key::AuthResponse<'a>),
|
|
}
|