pub struct UnifiedAuthenticator { /* private fields */ }Expand description
The master authenticator for irosh, implementing the unified security policy.
This authenticator governs all connection attempts (direct or via wormhole) and enforces a strict precedence:
- Established trust (Vault) always wins.
- Permanent Node Password challenges unknown keys.
- Active Wormhole Temp Password (Invite Pattern) provides a one-time override.
- Empty Vault + No Passwords allows TOFU.
Implementations§
Source§impl UnifiedAuthenticator
impl UnifiedAuthenticator
Sourcepub fn new(
state: StateConfig,
policy: HostKeyPolicy,
authorized_keys: Vec<PublicKey>,
_temp_password_hash: Option<String>,
) -> Self
pub fn new( state: StateConfig, policy: HostKeyPolicy, authorized_keys: Vec<PublicKey>, _temp_password_hash: Option<String>, ) -> Self
Creates a new unified authenticator.
Sourcepub fn with_tracking(
state: StateConfig,
policy: HostKeyPolicy,
authorized_keys: Vec<PublicKey>,
_temp_password_hash: Option<String>,
monitor: PairingMonitor,
) -> Self
pub fn with_tracking( state: StateConfig, policy: HostKeyPolicy, authorized_keys: Vec<PublicKey>, _temp_password_hash: Option<String>, monitor: PairingMonitor, ) -> Self
Creates a new unified authenticator that shares its success and failure tracking with an external monitor (used by the Server for wormhole auto-burn).
Sourcepub fn was_successful(&self) -> bool
pub fn was_successful(&self) -> bool
Returns the success flag, which is set to true when a NEW device is successfully added to the vault.
Sourcepub fn failed_attempts(&self) -> u32
pub fn failed_attempts(&self) -> u32
Returns the number of failed password attempts.
Trait Implementations§
Source§impl Authenticator for UnifiedAuthenticator
impl Authenticator for UnifiedAuthenticator
Source§fn supported_methods(&self) -> Vec<AuthMethod>
fn supported_methods(&self) -> Vec<AuthMethod>
Returns which auth methods this backend supports. Read more
Auto Trait Implementations§
impl Freeze for UnifiedAuthenticator
impl RefUnwindSafe for UnifiedAuthenticator
impl Send for UnifiedAuthenticator
impl Sync for UnifiedAuthenticator
impl Unpin for UnifiedAuthenticator
impl UnsafeUnpin for UnifiedAuthenticator
impl UnwindSafe for UnifiedAuthenticator
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Declassify for T
impl<T> Declassify for T
type Declassified = T
fn declassify(self) -> T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.