pub enum AuthMethod {
None,
Password,
Cookie,
SafeCookie,
Unknown,
}Expand description
Authentication methods supported by Tor’s control protocol.
These correspond to the methods listed in the PROTOCOLINFO response’s AUTH METHODS field.
§Security Comparison
| Method | Security | Use Case |
|---|---|---|
None | None | Testing only |
Password | Low | Simple setups |
Cookie | Medium | Local connections |
SafeCookie | High | Recommended for local |
§Example
use stem_rs::response::{ControlMessage, ProtocolInfoResponse, AuthMethod};
let msg = ControlMessage::from_str(
"250-PROTOCOLINFO 1\r\n\
250-AUTH METHODS=COOKIE,SAFECOOKIE COOKIEFILE=\"/tmp/cookie\"\r\n\
250 OK\r\n",
None,
false
).unwrap();
let response = ProtocolInfoResponse::from_message(&msg).unwrap();
// Check which methods are available
if response.auth_methods.contains(&AuthMethod::SafeCookie) {
println!("SafeCookie authentication available (recommended)");
}Variants§
None
No authentication required (NULL in protocol).
The control port is open without any authentication. This is insecure and should only be used for testing.
Password
Password authentication (HASHEDPASSWORD in protocol).
Requires the password configured via HashedControlPassword in torrc.
The password is sent in cleartext, so this is less secure than
cookie-based methods for local connections.
Cookie
Cookie file authentication (COOKIE in protocol).
Authenticates by proving access to a cookie file on disk. The cookie path is provided in the PROTOCOLINFO response.
SafeCookie
HMAC-based cookie authentication (SAFECOOKIE in protocol).
The most secure authentication method for local connections. Uses HMAC-SHA256 challenge-response to prove cookie knowledge without transmitting the cookie itself.
Unknown
An unrecognized authentication method.
This variant is used when Tor advertises an authentication method
that this library doesn’t recognize. The actual method name is
stored in ProtocolInfoResponse::unknown_auth_methods.
Trait Implementations§
Source§impl Clone for AuthMethod
impl Clone for AuthMethod
Source§fn clone(&self) -> AuthMethod
fn clone(&self) -> AuthMethod
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more