pub mod kerberos;
pub mod ldap;
pub mod passive;
use async_trait::async_trait;
use std::sync::Arc;
use crate::config::Config;
use crate::report::Finding;
#[async_trait]
pub trait DiagnosticModule: Send + Sync {
fn name(&self) -> &'static str;
async fn run(&self, config: Arc<Config>) -> anyhow::Result<Vec<Finding>>;
}
#[derive(Debug, Clone)]
pub struct LdapContext {
pub asrep_candidates: Vec<String>,
pub spn_accounts: Vec<SpnAccount>,
}
#[derive(Debug, Clone)]
pub struct SpnAccount {
pub sam_name: String,
pub spns: Vec<String>,
pub supported_enc_types: u32,
}