kingfisher-bin 2.10.0

MongoDB's blazingly fast and accurate secret scanning and validation tool
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//! The kingfisher-bin package exposes its library under the name `kingfisher`.
use std::sync::Arc;

use kingfisher::kingfisher_scanner::{Rule, RuleSyntax, RulesDatabase, Scanner, ScannerConfig};

fn main() -> anyhow::Result<()> {
    let rule = Rule::new(RuleSyntax::new("acme.demo", "Demo", r"(demo_[a-z0-9]{16})"));
    let database = Arc::new(RulesDatabase::from_rules(vec![rule])?);
    let scanner = Scanner::with_config(
        database,
        ScannerConfig { redact_secrets: true, ..Default::default() },
    );
    let findings = scanner.scan_bytes(b"token=demo_abcd1234efgh5678")?;
    assert_eq!(findings.len(), 1);
    println!("{}: [REDACTED]", findings[0].rule_id);
    Ok(())
}