1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//! User authentication — RFC 4252 (with RFC 4256 keyboard-interactive).
//!
//! The transport layer first carries a `SSH_MSG_SERVICE_REQUEST` for
//! `"ssh-userauth"`; once accepted, the peer sends `SSH_MSG_USERAUTH_REQUEST`
//! messages whose `method` field selects one of:
//!
//! - `"none"` — probe to learn allowed methods
//! - `"password"` — RFC 4252 §8
//! - `"publickey"` — RFC 4252 §7
//! - `"keyboard-interactive"` — RFC 4256
//! - `"hostbased"` — RFC 4252 §9 (not implemented here)
//!
//! Everything in this module is sans-I/O: state machines consume and produce
//! SSH *payload* bytes (the message-type byte plus method-specific fields)
//! and never touch sockets directly.
/// Wire-format codecs for the userauth messages (plumbing).
///
/// Only the sans-IO state machines need these; they are re-exported for
/// alternative frontends under [`crate::hazmat::auth::message`].
pub use ;
pub use SecretString;
pub use ;
// The sans-IO step machines are plumbing the drivers are built from. They
// stay `pub` here because `client::Client::new_auth_driver` / `run_auth`
// hand them across module boundaries, but their documented home is
// `crate::hazmat::auth`.
pub use ;
pub use ;