quinoa/src/auth/mod.rs

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>),
}