pub struct AuthManager { /* private fields */ }
Expand description
Authentication manager for handling peer authentication
Implementations§
Source§impl AuthManager
impl AuthManager
Sourcepub fn new(secret_key: Ed25519SecretKey, config: AuthConfig) -> Self
pub fn new(secret_key: Ed25519SecretKey, config: AuthConfig) -> Self
Create a new authentication manager
Sourcepub fn public_key_bytes(&self) -> [u8; 32]
pub fn public_key_bytes(&self) -> [u8; 32]
Get our public key bytes
Sourcepub fn config(&self) -> &AuthConfig
pub fn config(&self) -> &AuthConfig
Get authentication configuration
Sourcepub fn create_auth_request(&self) -> AuthMessage
pub fn create_auth_request(&self) -> AuthMessage
Create an authentication request
Sourcepub async fn handle_auth_request(
&self,
peer_id: PeerId,
public_key_bytes: [u8; 32],
) -> Result<AuthMessage, AuthError>
pub async fn handle_auth_request( &self, peer_id: PeerId, public_key_bytes: [u8; 32], ) -> Result<AuthMessage, AuthError>
Handle incoming authentication request
Sourcepub fn create_challenge_response(
&self,
nonce: [u8; 32],
) -> Result<AuthMessage, AuthError>
pub fn create_challenge_response( &self, nonce: [u8; 32], ) -> Result<AuthMessage, AuthError>
Create a challenge response
Sourcepub async fn verify_challenge_response(
&self,
peer_id: PeerId,
public_key_bytes: [u8; 32],
nonce: [u8; 32],
signature_bytes: &[u8],
) -> Result<AuthMessage, AuthError>
pub async fn verify_challenge_response( &self, peer_id: PeerId, public_key_bytes: [u8; 32], nonce: [u8; 32], signature_bytes: &[u8], ) -> Result<AuthMessage, AuthError>
Verify a challenge response
Sourcepub async fn is_authenticated(&self, peer_id: &PeerId) -> bool
pub async fn is_authenticated(&self, peer_id: &PeerId) -> bool
Check if a peer is authenticated
Sourcepub async fn get_authenticated_peer(
&self,
peer_id: &PeerId,
) -> Option<AuthenticatedPeer>
pub async fn get_authenticated_peer( &self, peer_id: &PeerId, ) -> Option<AuthenticatedPeer>
Get authenticated peer information
Sourcepub async fn handle_auth_success(
&self,
peer_id: PeerId,
public_key_bytes: [u8; 32],
session_id: [u8; 32],
) -> Result<(), AuthError>
pub async fn handle_auth_success( &self, peer_id: PeerId, public_key_bytes: [u8; 32], session_id: [u8; 32], ) -> Result<(), AuthError>
Handle successful authentication from responder
Sourcepub async fn remove_peer(&self, peer_id: &PeerId)
pub async fn remove_peer(&self, peer_id: &PeerId)
Remove an authenticated peer
Sourcepub async fn cleanup_expired_challenges(&self)
pub async fn cleanup_expired_challenges(&self)
Clean up expired challenges
Sourcepub async fn list_authenticated_peers(&self) -> Vec<PeerId>
pub async fn list_authenticated_peers(&self) -> Vec<PeerId>
Get list of authenticated peers
Sourcepub fn serialize_message(msg: &AuthMessage) -> Result<Vec<u8>, AuthError>
pub fn serialize_message(msg: &AuthMessage) -> Result<Vec<u8>, AuthError>
Serialize an auth message
Sourcepub fn deserialize_message(data: &[u8]) -> Result<AuthMessage, AuthError>
pub fn deserialize_message(data: &[u8]) -> Result<AuthMessage, AuthError>
Deserialize an auth message
Trait Implementations§
Auto Trait Implementations§
impl Freeze for AuthManager
impl !RefUnwindSafe for AuthManager
impl Send for AuthManager
impl Sync for AuthManager
impl Unpin for AuthManager
impl !UnwindSafe for AuthManager
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