Skip to content
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions crates/rustirc-core/src/auth.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,6 @@
//! implementing PLAIN, EXTERNAL, and SCRAM-SHA-256 mechanisms as specified
//! in Phase 2 requirements.

#![allow(unused_assignments)] // Zeroize derive generates field assignments for security

use anyhow::Result;
use base64::{engine::general_purpose::STANDARD as BASE64, Engine as _};
use std::collections::HashMap;
Expand All @@ -28,16 +26,18 @@ pub enum AuthState {
/// SASL credentials with secure password storage
#[derive(Debug, Clone, Zeroize, ZeroizeOnDrop)]
pub struct SaslCredentials {
#[allow(unused_assignments)] // Zeroize derive generates field assignments for security
pub username: String,
#[zeroize(skip)]
#[allow(unused_assignments)] // Zeroize derive generates field assignments for security
pub password: SecureString,
#[allow(unused_assignments)] // Zeroize derive generates field assignments for security
pub authzid: Option<String>,
}

/// Secure string that automatically zeroes memory on drop
#[derive(Clone, Zeroize, ZeroizeOnDrop)]
pub struct SecureString {
#[zeroize(skip)]
#[allow(unused_assignments)] // Zeroize derive generates field assignments for security
inner: Vec<u8>,
}

Expand Down