pub struct SshAgentBackend;Expand description
SSH-agent backed vault authentication.
Connects to $SSH_AUTH_SOCK, signs a BLAKE3-derived challenge with
the enrolled key, derives a KEK from the deterministic signature,
and unwraps the master key from the enrollment blob.
Implementations§
Trait Implementations§
Source§impl Default for SshAgentBackend
impl Default for SshAgentBackend
Source§impl VaultAuthBackend for SshAgentBackend
impl VaultAuthBackend for SshAgentBackend
Source§fn backend_id(&self) -> &str
fn backend_id(&self) -> &str
Short identifier for IPC messages and config.
Source§fn is_enrolled(&self, profile: &TrustProfileName, config_dir: &Path) -> bool
fn is_enrolled(&self, profile: &TrustProfileName, config_dir: &Path) -> bool
Check whether this backend has a valid enrollment for the profile.
Source§fn can_unlock<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
profile: &'life1 TrustProfileName,
config_dir: &'life2 Path,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn can_unlock<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
profile: &'life1 TrustProfileName,
config_dir: &'life2 Path,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Check whether this backend can currently perform an unlock.
Must be fast (< 100ms).
Source§fn requires_interaction(&self) -> AuthInteraction
fn requires_interaction(&self) -> AuthInteraction
What kind of user interaction this backend requires.
Source§fn unlock<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
profile: &'life1 TrustProfileName,
config_dir: &'life2 Path,
salt: &'life3 [u8],
) -> Pin<Box<dyn Future<Output = Result<UnlockOutcome, AuthError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn unlock<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
profile: &'life1 TrustProfileName,
config_dir: &'life2 Path,
salt: &'life3 [u8],
) -> Pin<Box<dyn Future<Output = Result<UnlockOutcome, AuthError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Attempt to derive/unwrap the master key for a profile.
Source§fn enroll<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
profile: &'life1 TrustProfileName,
master_key: &'life2 SecureBytes,
config_dir: &'life3 Path,
salt: &'life4 [u8],
selected_key_index: Option<usize>,
) -> Pin<Box<dyn Future<Output = Result<(), AuthError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn enroll<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
profile: &'life1 TrustProfileName,
master_key: &'life2 SecureBytes,
config_dir: &'life3 Path,
salt: &'life4 [u8],
selected_key_index: Option<usize>,
) -> Pin<Box<dyn Future<Output = Result<(), AuthError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Enroll this backend for a profile. Requires the master key. Read more
Source§fn revoke<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
profile: &'life1 TrustProfileName,
config_dir: &'life2 Path,
) -> Pin<Box<dyn Future<Output = Result<(), AuthError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn revoke<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
profile: &'life1 TrustProfileName,
config_dir: &'life2 Path,
) -> Pin<Box<dyn Future<Output = Result<(), AuthError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Remove enrollment for this backend.
Auto Trait Implementations§
impl Freeze for SshAgentBackend
impl RefUnwindSafe for SshAgentBackend
impl Send for SshAgentBackend
impl Sync for SshAgentBackend
impl Unpin for SshAgentBackend
impl UnwindSafe for SshAgentBackend
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