keyhog-core 0.5.4

keyhog-core — shared data model and detector specifications for the KeyHog secret scanner
Documentation
use keyhog_core::{ScanConfig, MAX_DECODE_DEPTH_LIMIT};

#[test]
fn default_config_valid() {
    let config = ScanConfig::default();
    assert!(config.validate().is_ok());
}

#[test]
fn fast_config_valid() {
    let config = ScanConfig::fast();
    assert!(config.validate().is_ok());
    assert_eq!(config.max_decode_depth, 2);
    assert!(!config.entropy_enabled);
}

#[test]
fn thorough_config_valid() {
    let config = ScanConfig::thorough();
    assert!(config.validate().is_ok());
    assert_eq!(config.max_decode_depth, 8);
    assert!(config.entropy_in_source_files);
}

#[test]
fn paranoid_config_valid() {
    let config = ScanConfig::paranoid();
    assert!(config.validate().is_ok());
    assert_eq!(config.max_decode_depth, MAX_DECODE_DEPTH_LIMIT);
}

#[test]
fn invalid_depth_rejected() {
    let config = ScanConfig {
        max_decode_depth: 100,
        ..Default::default()
    };
    assert!(config.validate().is_err());
}

#[test]
fn invalid_confidence_rejected() {
    let config = ScanConfig {
        min_confidence: 1.5,
        ..Default::default()
    };
    assert!(config.validate().is_err());
}