1#[allow(unused_imports)]
2use {
3 crate::error::{Error, Result, TrapBug},
4 log::{debug, error, info, log, trace, warn},
5};
6
7use crate::*;
8use kex::SessId;
9use sshwire::{BinString, SSHEncode, WireResult};
10
11#[derive(Debug)]
14pub struct AuthSigMsg<'a> {
15 pub(crate) sess_id: BinString<'a>,
16 pub(crate) u: packets::UserauthRequest<'a>,
17}
18
19impl SSHEncode for AuthSigMsg<'_> {
20 fn enc(&self, s: &mut dyn sshwire::SSHSink) -> WireResult<()> {
21 self.sess_id.enc(s)?;
22
23 let m = packets::MessageNumber::SSH_MSG_USERAUTH_REQUEST as u8;
24 m.enc(s)?;
25
26 self.u.enc(s)?;
27 Ok(())
28 }
29}
30
31impl<'a> AuthSigMsg<'a> {
32 pub(crate) fn new(u: packets::UserauthRequest<'a>, sess_id: &'a SessId) -> Self {
33 auth::AuthSigMsg { sess_id: BinString(sess_id.as_ref()), u }
34 }
35}
36
37#[derive(Clone, Debug)]
38pub enum AuthType {
39 Password,
40 PubKey,
41}