[package]
edition = "2021"
rust-version = "1.89"
name = "keyhog-scanner"
version = "0.5.40"
authors = ["Santh Project <security@santh.dev>"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "keyhog-scanner: high-performance SIMD-accelerated secret detection engine"
homepage = "https://github.com/santhsecurity/keyhog"
documentation = "https://docs.rs/keyhog-scanner"
readme = "README.md"
keywords = [
"secret-scanner",
"security",
"credentials",
"api-keys",
"git",
]
categories = [
"command-line-utilities",
"development-tools",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/santhsecurity/keyhog"
[package.metadata.santh]
status = "alpha"
[features]
ci-lean = [
"ml",
"entropy",
"decode",
"multiline",
"simdsieve",
"simd",
]
cuda = ["gpu"]
decode = []
default = [
"ml",
"entropy",
"decode",
"multiline",
"simdsieve",
"simd",
"gpu",
]
entropy = []
gpu = [
"dep:wgpu",
"dep:pollster",
"dep:bytemuck",
"dep:vyre-driver-wgpu",
"dep:vyre-runtime",
"dep:vyre-driver-cuda",
]
ml = []
multiline = []
simd = ["dep:hyperscan"]
simd_scan = ["simd"]
simdsieve = ["dep:simdsieve"]
[lib]
name = "keyhog_scanner"
path = "src/lib.rs"
[[example]]
name = "adv_bare_vs_wrap"
path = "examples/adv_bare_vs_wrap.rs"
[[example]]
name = "adv_fail_dump"
path = "examples/adv_fail_dump.rs"
[[example]]
name = "adv_inventory"
path = "examples/adv_inventory.rs"
[[example]]
name = "adv_probe_batch"
path = "examples/adv_probe_batch.rs"
[[example]]
name = "adv_probe_detailed"
path = "examples/adv_probe_detailed.rs"
[[example]]
name = "adv_probe_one"
path = "examples/adv_probe_one.rs"
[[example]]
name = "adv_triage"
path = "examples/adv_triage.rs"
[[example]]
name = "adv_wrap_only"
path = "examples/adv_wrap_only.rs"
[[example]]
name = "dump_features"
path = "examples/dump_features.rs"
[[example]]
name = "evasion_count"
path = "examples/evasion_count.rs"
[[example]]
name = "evasion_fix_probe"
path = "examples/evasion_fix_probe.rs"
[[example]]
name = "real_tree_benchmark"
path = "examples/real_tree_benchmark.rs"
[[example]]
name = "scan_probe"
path = "examples/scan_probe.rs"
[[example]]
name = "scanner_standalone"
path = "examples/scanner_standalone.rs"
[[test]]
name = "adversarial_explosion_runner"
path = "tests/adversarial_explosion_runner.rs"
[[test]]
name = "all_detectors_self_validate"
path = "tests/all_detectors_self_validate.rs"
[[test]]
name = "all_tests"
path = "tests/all_tests.rs"
[[test]]
name = "analyze_keyword_only"
path = "tests/analyze_keyword_only.rs"
[[test]]
name = "api_consistency"
path = "tests/api_consistency.rs"
[[test]]
name = "audit_speed"
path = "tests/audit_speed.rs"
[[test]]
name = "backend_parity_chunk_boundary_all_backends"
path = "tests/backend_parity_chunk_boundary_all_backends.rs"
[[test]]
name = "backend_parity_coalesced_vs_individual"
path = "tests/backend_parity_coalesced_vs_individual.rs"
[[test]]
name = "backend_parity_empty_and_edge_chunks"
path = "tests/backend_parity_empty_and_edge_chunks.rs"
[[test]]
name = "backend_parity_entropy_fallback"
path = "tests/backend_parity_entropy_fallback.rs"
[[test]]
name = "backend_parity_large_corpus_stress"
path = "tests/backend_parity_large_corpus_stress.rs"
[[test]]
name = "backend_parity_matrix"
path = "tests/backend_parity_matrix.rs"
[[test]]
name = "backend_robustness"
path = "tests/backend_robustness.rs"
[[test]]
name = "chunk_ad_runner"
path = "tests/chunk_ad_runner.rs"
[[test]]
name = "comment_embed_runner"
path = "tests/comment_embed_runner.rs"
[[test]]
name = "companion_contracts_runner"
path = "tests/companion_contracts_runner.rs"
[[test]]
name = "compound_encoding_runner"
path = "tests/compound_encoding_runner.rs"
[[test]]
name = "confidence_floor_edge_cases"
path = "tests/confidence_floor_edge_cases.rs"
[[test]]
name = "contracts_runner"
path = "tests/contracts_runner.rs"
[[test]]
name = "cross_detector_corpus_proptest"
path = "tests/property/cross_detector_corpus_proptest.rs"
[[test]]
name = "cve_corpus_runner"
path = "tests/cve_corpus_runner.rs"
[[test]]
name = "cve_replay_runner"
path = "tests/cve_replay_runner.rs"
[[test]]
name = "decode_backend_matrix"
path = "tests/decode_backend_matrix.rs"
[[test]]
name = "decode_test"
path = "tests/decode_test.rs"
[[test]]
name = "detector_spec_min_confidence_loaded"
path = "tests/detector_spec_min_confidence_loaded.rs"
[[test]]
name = "diagnose_84_divergence"
path = "tests/diagnose_84_divergence.rs"
[[test]]
name = "diagnose_sb_divergence"
path = "tests/diagnose_sb_divergence.rs"
[[test]]
name = "encoding_explosion_runner"
path = "tests/encoding_explosion_runner.rs"
[[test]]
name = "entropy_edge_runner"
path = "tests/entropy_edge_runner.rs"
[[test]]
name = "fallback_no_hit_branch_recall"
path = "tests/fallback_no_hit_branch_recall.rs"
[[test]]
name = "fallback_wire_regression_69"
path = "tests/fallback_wire_regression_69.rs"
[[test]]
name = "gaps"
path = "tests/gaps.rs"
[[test]]
name = "gpu_ac_recall_bug_56"
path = "tests/gpu_ac_recall_bug_56.rs"
[[test]]
name = "gpu_ac_smoke"
path = "tests/gpu_ac_smoke.rs"
[[test]]
name = "gpu_parity"
path = "tests/gpu_parity.rs"
[[test]]
name = "gpu_proptest_invariants"
path = "tests/gpu_proptest_invariants.rs"
[[test]]
name = "high_precision_entropy_disabled"
path = "tests/high_precision_entropy_disabled.rs"
[[test]]
name = "lazy_regex"
path = "tests/lazy_regex.rs"
[[test]]
name = "line_length_runner"
path = "tests/line_length_runner.rs"
[[test]]
name = "megakernel_parity"
path = "tests/megakernel_parity.rs"
[[test]]
name = "ml_forward_parity"
path = "tests/ml_forward_parity.rs"
[[test]]
name = "multi_secret_runner"
path = "tests/multi_secret_runner.rs"
[[test]]
name = "noise_injection_runner"
path = "tests/noise_injection_runner.rs"
[[test]]
name = "oom_test"
path = "tests/oom_test.rs"
[[test]]
name = "openai_html_comment_bug_62"
path = "tests/openai_html_comment_bug_62.rs"
[[test]]
name = "path_shape_runner"
path = "tests/path_shape_runner.rs"
[[test]]
name = "pem_private_key_recall_64"
path = "tests/pem_private_key_recall_64.rs"
[[test]]
name = "per_detector_hostile_near_miss_runner"
path = "tests/per_detector_hostile_near_miss_runner.rs"
[[test]]
name = "perf_alloc_perchunk"
path = "tests/perf_alloc_perchunk.rs"
[[test]]
name = "perf_compile_cache"
path = "tests/perf_compile_cache.rs"
[[test]]
name = "perf_decode_caesar"
path = "tests/perf_decode_caesar.rs"
[[test]]
name = "perf_floor"
path = "tests/perf_floor.rs"
[[test]]
name = "perf_floor_matrix"
path = "tests/perf_floor_matrix.rs"
[[test]]
name = "perf_locality_intern"
path = "tests/perf_locality_intern.rs"
[[test]]
name = "perf_ml_scoring"
path = "tests/perf_ml_scoring.rs"
[[test]]
name = "perf_simd_scan"
path = "tests/perf_simd_scan.rs"
[[test]]
name = "performance_regression"
path = "tests/performance_regression.rs"
[[test]]
name = "platform_compat"
path = "tests/platform_compat.rs"
[[test]]
name = "postprocess_confidence_floor"
path = "tests/postprocess_confidence_floor.rs"
[[test]]
name = "prefilter_robustness_proptest"
path = "tests/property/prefilter_robustness_proptest.rs"
[[test]]
name = "preprocessor_no_phantom_append"
path = "tests/preprocessor_no_phantom_append.rs"
[[test]]
name = "probe_r2b_fixtures"
path = "tests/probe_r2b_fixtures.rs"
[[test]]
name = "readme_claims"
path = "tests/readme_claims.rs"
[[test]]
name = "regression_bare_authorization_no_fp"
path = "tests/regression_bare_authorization_no_fp.rs"
[[test]]
name = "regression_decode_budget_per_decode"
path = "tests/regression_decode_budget_per_decode.rs"
[[test]]
name = "regression_decode_fanout_budget"
path = "tests/regression_decode_fanout_budget.rs"
[[test]]
name = "regression_entropy_fast_dispatch_and_sample"
path = "tests/regression_entropy_fast_dispatch_and_sample.rs"
[[test]]
name = "regression_entropy_fma3_dispatch"
path = "tests/regression_entropy_fma3_dispatch.rs"
[[test]]
name = "regression_fragment_cache_determinism"
path = "tests/regression_fragment_cache_determinism.rs"
[[test]]
name = "regression_instructional_fragment_multibyte_boundary"
path = "tests/regression_instructional_fragment_multibyte_boundary.rs"
[[test]]
name = "regression_multiline_struct_base_and_fstring_prefix"
path = "tests/regression_multiline_struct_base_and_fstring_prefix.rs"
[[test]]
name = "regression_overbroad_detectors_precision"
path = "tests/regression_overbroad_detectors_precision.rs"
[[test]]
name = "regression_recall_new_prefixes"
path = "tests/regression_recall_new_prefixes.rs"
[[test]]
name = "regression_slack_three_segment"
path = "tests/regression_slack_three_segment.rs"
[[test]]
name = "regression_unicode_nbsp_separator_normalization"
path = "tests/regression_unicode_nbsp_separator_normalization.rs"
[[test]]
name = "routing_matrix"
path = "tests/routing_matrix.rs"
[[test]]
name = "rule_pipeline_shard_probe"
path = "tests/rule_pipeline_shard_probe.rs"
[[test]]
name = "scan_probe"
path = "tests/scan_probe.rs"
[[test]]
name = "timeout_test"
path = "tests/timeout_test.rs"
[[test]]
name = "unicode_confusable_runner"
path = "tests/unicode_confusable_runner.rs"
[[test]]
name = "whitespace_normalization_runner"
path = "tests/whitespace_normalization_runner.rs"
[[test]]
name = "window_boundary"
path = "tests/window_boundary.rs"
[[test]]
name = "worst_case_backend_parity"
path = "tests/worst_case_backend_parity.rs"
[[bench]]
name = "adversarial"
path = "benches/adversarial.rs"
harness = false
[[bench]]
name = "alphabet"
path = "benches/alphabet.rs"
[[bench]]
name = "compile_time"
path = "benches/compile_time.rs"
[[bench]]
name = "confidence"
path = "benches/confidence.rs"
[[bench]]
name = "decode"
path = "benches/decode.rs"
[[bench]]
name = "edge_cases"
path = "benches/edge_cases.rs"
[[bench]]
name = "entropy"
path = "benches/entropy.rs"
[[bench]]
name = "scan_throughput"
path = "benches/scan_throughput.rs"
harness = false
[[bench]]
name = "size_pattern_sweep"
path = "benches/size_pattern_sweep.rs"
harness = false
[[bench]]
name = "throughput"
path = "benches/throughput.rs"
[dependencies.ahash]
version = "=0.8.12"
[dependencies.aho-corasick]
version = "=1.1.4"
[dependencies.base64]
version = "=0.22.1"
[dependencies.base64-simd]
version = "0.8.0"
[dependencies.bytemuck]
version = "=1.25.0"
features = ["derive"]
optional = true
[dependencies.dashmap]
version = "=6.2.1"
[dependencies.dirs]
version = "=6.0.0"
[dependencies.hex]
version = "=0.4.3"
[dependencies.hex-simd]
version = "0.8.0"
[dependencies.hyperscan]
version = "=0.3.2"
optional = true
[dependencies.keyhog-core]
version = "=0.5.40"
[dependencies.lazy_static]
version = "=1.5.0"
[dependencies.libc]
version = "=0.2.186"
[dependencies.lru]
version = "=0.12.5"
[dependencies.memchr]
version = "=2.8.0"
[dependencies.parking_lot]
version = "=0.12.5"
[dependencies.pollster]
version = "=0.4.0"
optional = true
[dependencies.rayon]
version = "=1.12.0"
[dependencies.regex]
version = "=1.12.3"
[dependencies.regex-syntax]
version = "=0.8.10"
[dependencies.serde]
version = "=1.0.228"
features = ["derive"]
[dependencies.serde_json]
version = "=1.0.150"
[dependencies.serde_yaml]
version = "=0.9.34"
[dependencies.sha2]
version = "=0.10.9"
[dependencies.simdsieve]
version = "=0.1.1"
optional = true
[dependencies.tempfile]
version = "=3.27.0"
[dependencies.thiserror]
version = "=2.0.18"
[dependencies.tokio]
version = "=1.52.3"
features = [
"full",
"rt",
"time",
]
[dependencies.toml]
version = "=1.1.2"
[dependencies.tracing]
version = "=0.1.44"
[dependencies.unicode-normalization]
version = "=0.1.25"
[dependencies.vyre]
version = "=0.6.1"
[dependencies.vyre-driver-wgpu]
version = "=0.6.1"
optional = true
package = "vyre-driver-wgpu"
[dependencies.vyre-runtime]
version = "=0.6.1"
features = ["megakernel-batch"]
optional = true
[dependencies.vyre_libs]
version = "=0.6.1"
features = [
"matching-nfa",
"matching-regex",
"intern",
]
package = "vyre-libs"
[dependencies.wgpu]
version = "=25.0.2"
optional = true
[dependencies.zeroize]
version = "=1.8.2"
features = ["derive"]
[dev-dependencies.chrono]
version = "=0.4.44"
[dev-dependencies.criterion]
version = "=0.8.2"
features = ["html_reports"]
[dev-dependencies.keyhog-verifier]
version = "=0.5.40"
[dev-dependencies.md5]
version = "0.7"
[dev-dependencies.proptest]
version = "=1.11.0"
[dev-dependencies.tempfile]
version = "=3.27.0"
[dev-dependencies.tokio]
version = "=1.52.3"
features = [
"full",
"full",
]
[target.'cfg(target_os = "linux")'.dependencies.io-uring]
version = "=0.7.11"
[target.'cfg(target_os = "linux")'.dependencies.vyre-driver-cuda]
version = "=0.6.1"
features = ["cuda"]
optional = true
package = "vyre-driver-cuda"