pub mod aggregation;
pub use aggregation::merge_vulnerability_result;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum VulnerabilityType {
Heartbleed,
CCSInjection,
Ticketbleed,
ROBOT,
POODLE,
POODLEtls,
BEAST,
CRIME,
BREACH,
SWEET32,
FREAK,
LOGJAM,
DROWN,
LUCKY13,
Renegotiation,
TLSFallback,
RC4,
Winshock,
StarttlsInjection,
Opossum,
EarlyDataReplay,
PaddingOracle2016, ZombiePoodle, GoldenDoodle, SleepingPoodle, OpenSsl0Length, }
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct VulnerabilityResult {
pub vuln_type: VulnerabilityType,
pub vulnerable: bool,
pub details: String,
pub cve: Option<String>,
pub cwe: Option<String>,
pub severity: Severity,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)]
pub enum Severity {
Info,
Low,
Medium,
High,
Critical,
}
impl Severity {
pub fn colored_display(&self) -> colored::ColoredString {
use colored::Colorize;
match self {
Self::Critical => "CRITICAL".red().bold(),
Self::High => "HIGH".red(),
Self::Medium => "MEDIUM".yellow(),
Self::Low => "LOW".normal(),
Self::Info => "INFO".cyan(),
}
}
}
pub mod beast;
pub mod breach;
pub mod ccs;
pub mod crime;
pub mod debian_keys;
pub mod drown;
pub mod early_data;
pub mod freak;
pub mod grease;
pub mod heartbleed;
pub mod logjam;
pub mod lucky13;
pub mod opossum;
pub mod padding_oracle_2016;
pub mod poodle;
pub mod robot;
pub mod starttls_injection;
pub mod sweet32;
pub mod tester;
pub mod ticketbleed;
pub mod winshock;