[package]
edition = "2021"
rust-version = "1.89"
name = "keyhog"
version = "0.5.73"
authors = ["Santh <64453045+santhreal@users.noreply.github.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "GPU-accelerated secret scanner for code, Git history, cloud, containers, browser assets, and live credential verification"
homepage = "https://santh.dev/keyhog/"
documentation = "https://docs.rs/keyhog"
readme = "README.md"
keywords = [
"secret-scanner",
"security",
"credentials",
"gpu",
"devsecops",
]
categories = [
"command-line-utilities",
"development-tools",
"filesystem",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/santhreal/keyhog"
[package.metadata.santh]
status = "alpha"
[package.metadata.docs.rs]
no-default-features = true
features = ["portable"]
[features]
allocation-profile = []
azure = ["keyhog-sources/azure"]
binary = ["keyhog-sources/binary"]
bitbucket = ["keyhog-sources/bitbucket"]
ci = [
"keyhog-scanner/ml",
"keyhog-scanner/entropy",
"keyhog-scanner/decode",
"keyhog-scanner/multiline",
]
ci-lean = [
"keyhog-scanner/ci-lean",
"simd",
"git",
"web",
"github",
"gitlab",
"bitbucket",
"slack",
"azure",
"gcs",
"s3",
"docker",
"verify",
]
default = ["portable"]
docker = ["keyhog-sources/docker"]
full = [
"keyhog-scanner/ml",
"keyhog-scanner/entropy",
"keyhog-scanner/decode",
"keyhog-scanner/multiline",
"git",
"web",
"github",
"azure",
"gcs",
"s3",
"docker",
"gitlab",
"bitbucket",
"slack",
"verify",
"binary",
"mimalloc",
]
gcs = ["keyhog-sources/gcs"]
git = ["keyhog-sources/git"]
github = ["keyhog-sources/github"]
gitlab = ["keyhog-sources/gitlab"]
gpu = ["keyhog-scanner/gpu"]
mimalloc = ["dep:mimalloc"]
portable = [
"keyhog-scanner/ml",
"keyhog-scanner/entropy",
"keyhog-scanner/decode",
"keyhog-scanner/multiline",
"git",
"web",
"github",
"gitlab",
"bitbucket",
"slack",
"azure",
"gcs",
"s3",
"docker",
"binary",
"verify",
"mimalloc",
]
s3 = ["keyhog-sources/s3"]
simd = ["keyhog-scanner/simd"]
slack = ["keyhog-sources/slack"]
static-hyperscan = [
"simd",
"keyhog-scanner/static-hyperscan",
]
verify = ["keyhog-verifier/live"]
web = ["keyhog-sources/web"]
[lib]
name = "keyhog"
path = "src/lib.rs"
[[bin]]
name = "keyhog"
path = "src/main.rs"
[[test]]
name = "action_report_receipt_contract"
path = "tests/action_report_receipt_contract.rs"
[[test]]
name = "action_root_mirror_parity"
path = "tests/action_root_mirror_parity.rs"
[[test]]
name = "adversarial"
path = "tests/adversarial.rs"
[[test]]
name = "all_tests"
path = "tests/all_tests.rs"
[[test]]
name = "audit_arch_wiring"
path = "tests/audit_arch_wiring.rs"
[[test]]
name = "audit_capability"
path = "tests/audit_capability.rs"
[[test]]
name = "audit_coherence"
path = "tests/audit_coherence.rs"
[[test]]
name = "audit_generalization"
path = "tests/audit_generalization.rs"
[[test]]
name = "audit_insufficiency"
path = "tests/audit_insufficiency.rs"
[[test]]
name = "audit_research_innovation"
path = "tests/audit_research_innovation.rs"
[[test]]
name = "audit_testing_dogfood"
path = "tests/audit_testing_dogfood.rs"
[[test]]
name = "break_it"
path = "tests/break_it.rs"
[[test]]
name = "coherence_verify_count"
path = "tests/coherence_verify_count.rs"
[[test]]
name = "coherence_wiring_lane7"
path = "tests/coherence_wiring_lane7.rs"
[[test]]
name = "config_hermetic"
path = "tests/config_hermetic.rs"
[[test]]
name = "cross_os_target_spec"
path = "tests/cross_os_target_spec.rs"
[[test]]
name = "detector_overlay_modes"
path = "tests/detector_overlay_modes.rs"
[[test]]
name = "dogfood_all"
path = "tests/dogfood_all.rs"
[[test]]
name = "e2e_all"
path = "tests/e2e_all.rs"
[[test]]
name = "e2e_backend"
path = "tests/e2e_backend.rs"
[[test]]
name = "e2e_binary"
path = "tests/e2e_binary.rs"
[[test]]
name = "e2e_calibrate"
path = "tests/e2e_calibrate.rs"
[[test]]
name = "e2e_completion"
path = "tests/e2e_completion.rs"
[[test]]
name = "e2e_diff"
path = "tests/e2e_diff.rs"
[[test]]
name = "e2e_explain"
path = "tests/e2e_explain.rs"
[[test]]
name = "e2e_format_and_backend_equivalence"
path = "tests/e2e_format_and_backend_equivalence.rs"
[[test]]
name = "e2e_gpu_autoroute_optin"
path = "tests/e2e_gpu_autoroute_optin.rs"
[[test]]
name = "e2e_hook_install"
path = "tests/e2e_hook_install.rs"
[[test]]
name = "e2e_watch"
path = "tests/e2e_watch.rs"
[[test]]
name = "execution_pack_install"
path = "tests/execution_pack_install.rs"
[[test]]
name = "gap_all"
path = "tests/gap_all.rs"
[[test]]
name = "github_actions_exit_preservation"
path = "tests/github_actions_exit_preservation.rs"
[[test]]
name = "github_collaboration_selection"
path = "tests/github_collaboration_selection.rs"
[[test]]
name = "gpu_simd_parity"
path = "tests/gpu_simd_parity.rs"
[[test]]
name = "lane10_daemon_accept_resilience"
path = "tests/lane10_daemon_accept_resilience.rs"
[[test]]
name = "lane10_daemon_e2e_lifecycle"
path = "tests/lane10_daemon_e2e_lifecycle.rs"
[[test]]
name = "lane10_daemon_terminal_failure"
path = "tests/lane10_daemon_terminal_failure.rs"
[[test]]
name = "lane10_installer_orphan_reap"
path = "tests/lane10_installer_orphan_reap.rs"
[[test]]
name = "lane10_silent_fallback_surfacing"
path = "tests/lane10_silent_fallback_surfacing.rs"
[[test]]
name = "lane10_verification_doc_coherence"
path = "tests/lane10_verification_doc_coherence.rs"
[[test]]
name = "lane5_cli_subcommand_surface_matrix"
path = "tests/lane5_cli_subcommand_surface_matrix.rs"
[[test]]
name = "lane5_sarif_schema_and_scale_matrix"
path = "tests/lane5_sarif_schema_and_scale_matrix.rs"
[[test]]
name = "lane5_scan_flag_and_exit_matrix"
path = "tests/lane5_scan_flag_and_exit_matrix.rs"
[[test]]
name = "live_verify"
path = "tests/live_verify.rs"
[[test]]
name = "platform_compat"
path = "tests/platform_compat.rs"
[[test]]
name = "profile_process_boundary"
path = "tests/profile_process_boundary.rs"
[[test]]
name = "profiling_reporting"
path = "tests/profiling_reporting.rs"
[[test]]
name = "profiling_startup"
path = "tests/profiling_startup.rs"
[[test]]
name = "property"
path = "tests/property.rs"
[[test]]
name = "regression_allowlist_governance"
path = "tests/regression_allowlist_governance.rs"
[[test]]
name = "regression_ambient_source_env_ignored"
path = "tests/regression_ambient_source_env_ignored.rs"
[[test]]
name = "regression_cli_aux_subcommands_e2e"
path = "tests/regression_cli_aux_subcommands_e2e.rs"
[[test]]
name = "regression_cli_backend_matrix"
path = "tests/regression_cli_backend_matrix.rs"
[[test]]
name = "regression_cli_baseline_diff"
path = "tests/regression_cli_baseline_diff.rs"
[[test]]
name = "regression_cli_calibrate_autoroute_e2e"
path = "tests/regression_cli_calibrate_autoroute_e2e.rs"
[[test]]
name = "regression_cli_completion_shells"
path = "tests/regression_cli_completion_shells.rs"
[[test]]
name = "regression_cli_config_file_load"
path = "tests/regression_cli_config_file_load.rs"
[[test]]
name = "regression_cli_config_init"
path = "tests/regression_cli_config_init.rs"
[[test]]
name = "regression_cli_config_path"
path = "tests/regression_cli_config_path.rs"
[[test]]
name = "regression_cli_config_surface"
path = "tests/regression_cli_config_surface.rs"
[[test]]
name = "regression_cli_daemon_hook_lifecycle_e2e"
path = "tests/regression_cli_daemon_hook_lifecycle_e2e.rs"
[[test]]
name = "regression_cli_daemon_status"
path = "tests/regression_cli_daemon_status.rs"
[[test]]
name = "regression_cli_diff_baseline_depth"
path = "tests/regression_cli_diff_baseline_depth.rs"
[[test]]
name = "regression_cli_exclude_glob"
path = "tests/regression_cli_exclude_glob.rs"
[[test]]
name = "regression_cli_exit_codes"
path = "tests/regression_cli_exit_codes.rs"
[[test]]
name = "regression_cli_explain_detectors"
path = "tests/regression_cli_explain_detectors.rs"
[[test]]
name = "regression_cli_git_toggle"
path = "tests/regression_cli_git_toggle.rs"
[[test]]
name = "regression_cli_glob_filters"
path = "tests/regression_cli_glob_filters.rs"
[[test]]
name = "regression_cli_json_shape"
path = "tests/regression_cli_json_shape.rs"
[[test]]
name = "regression_cli_max_depth"
path = "tests/regression_cli_max_depth.rs"
[[test]]
name = "regression_cli_min_severity"
path = "tests/regression_cli_min_severity.rs"
[[test]]
name = "regression_cli_multiple_paths"
path = "tests/regression_cli_multiple_paths.rs"
[[test]]
name = "regression_cli_no_color"
path = "tests/regression_cli_no_color.rs"
[[test]]
name = "regression_cli_output_file"
path = "tests/regression_cli_output_file.rs"
[[test]]
name = "regression_cli_output_path"
path = "tests/regression_cli_output_path.rs"
[[test]]
name = "regression_cli_quiet_flag"
path = "tests/regression_cli_quiet_flag.rs"
[[test]]
name = "regression_cli_redact_flag"
path = "tests/regression_cli_redact_flag.rs"
[[test]]
name = "regression_cli_sarif_output_file"
path = "tests/regression_cli_sarif_output_file.rs"
[[test]]
name = "regression_cli_scan_diff_explain_e2e"
path = "tests/regression_cli_scan_diff_explain_e2e.rs"
[[test]]
name = "regression_cli_scan_format_matrix"
path = "tests/regression_cli_scan_format_matrix.rs"
[[test]]
name = "regression_cli_scan_stdin"
path = "tests/regression_cli_scan_stdin.rs"
[[test]]
name = "regression_cli_scan_summary"
path = "tests/regression_cli_scan_summary.rs"
[[test]]
name = "regression_cli_stdin_scan"
path = "tests/regression_cli_stdin_scan.rs"
[[test]]
name = "regression_cli_threads_determinism"
path = "tests/regression_cli_threads_determinism.rs"
[[test]]
name = "regression_cli_verbosity_flags"
path = "tests/regression_cli_verbosity_flags.rs"
[[test]]
name = "regression_cli_version_coherence"
path = "tests/regression_cli_version_coherence.rs"
[[test]]
name = "regression_cli_version_help"
path = "tests/regression_cli_version_help.rs"
[[test]]
name = "regression_daemon_custom_replacement_corpus"
path = "tests/regression_daemon_custom_replacement_corpus.rs"
[[test]]
name = "regression_daemon_suppression_parity"
path = "tests/regression_daemon_suppression_parity.rs"
[[test]]
name = "regression_empty_scan_is_not_clean"
path = "tests/regression_empty_scan_is_not_clean.rs"
[[test]]
name = "regression_error_messages_actionable"
path = "tests/regression_error_messages_actionable.rs"
[[test]]
name = "regression_exit_code_contract"
path = "tests/regression_exit_code_contract.rs"
[[test]]
name = "regression_exit_code_matrix"
path = "tests/regression_exit_code_matrix.rs"
[[test]]
name = "regression_expired_allowlist_fails_closed"
path = "tests/regression_expired_allowlist_fails_closed.rs"
[[test]]
name = "regression_explain_no_quality_noise"
path = "tests/regression_explain_no_quality_noise.rs"
[[test]]
name = "regression_explicit_backend_ignores_autoroute_cache"
path = "tests/regression_explicit_backend_ignores_autoroute_cache.rs"
[[test]]
name = "regression_har_source_parse_gap_visible"
path = "tests/regression_har_source_parse_gap_visible.rs"
[[test]]
name = "regression_incremental_cache_config_wiring"
path = "tests/regression_incremental_cache_config_wiring.rs"
[[test]]
name = "regression_install_insecure_env_removed"
path = "tests/regression_install_insecure_env_removed.rs"
[[test]]
name = "regression_install_static_analysis_gate"
path = "tests/regression_install_static_analysis_gate.rs"
[[test]]
name = "regression_install_windows_unblock"
path = "tests/regression_install_windows_unblock.rs"
[[test]]
name = "regression_invalid_backend_env_fails_closed"
path = "tests/regression_invalid_backend_env_fails_closed.rs"
[[test]]
name = "regression_invalid_detectors_env_fails_closed"
path = "tests/regression_invalid_detectors_env_fails_closed.rs"
[[test]]
name = "regression_legacy_canary_env_ignored"
path = "tests/regression_legacy_canary_env_ignored.rs"
[[test]]
name = "regression_lockdown_custom_incremental_cache"
path = "tests/regression_lockdown_custom_incremental_cache.rs"
[[test]]
name = "regression_malformed_detector_dir_fails_closed"
path = "tests/regression_malformed_detector_dir_fails_closed.rs"
[[test]]
name = "regression_ml_threshold_wired_to_confidence_floor"
path = "tests/regression_ml_threshold_wired_to_confidence_floor.rs"
[[test]]
name = "regression_org_split_installer_api"
path = "tests/regression_org_split_installer_api.rs"
[[test]]
name = "regression_output_to_dev_null"
path = "tests/regression_output_to_dev_null.rs"
[[test]]
name = "regression_removed_verification_state"
path = "tests/regression_removed_verification_state.rs"
[[test]]
name = "regression_require_gpu_fails_closed"
path = "tests/regression_require_gpu_fails_closed.rs"
[[test]]
name = "regression_scan_setup_error_exits_cleanly"
path = "tests/regression_scan_setup_error_exits_cleanly.rs"
[[test]]
name = "regression_scan_system_mount_filters_tier_b"
path = "tests/regression_scan_system_mount_filters_tier_b.rs"
[[test]]
name = "regression_scanargs_field_contract"
path = "tests/regression_scanargs_field_contract.rs"
[[test]]
name = "regression_scans_user_detectors_directory"
path = "tests/regression_scans_user_detectors_directory.rs"
[[test]]
name = "regression_self_scan_segment_suppression_visible"
path = "tests/regression_self_scan_segment_suppression_visible.rs"
[[test]]
name = "regression_stable_hash_field_identity"
path = "tests/regression_stable_hash_field_identity.rs"
[[test]]
name = "regression_uninstall_surfaces_cache"
path = "tests/regression_uninstall_surfaces_cache.rs"
[[test]]
name = "regression_value_parser_fix_guidance"
path = "tests/regression_value_parser_fix_guidance.rs"
[[test]]
name = "regression_vendored_minified_finding_reachable"
path = "tests/regression_vendored_minified_finding_reachable.rs"
[[test]]
name = "regression_zip64_duplicate_scan_gap_visible"
path = "tests/regression_zip64_duplicate_scan_gap_visible.rs"
[[test]]
name = "release_attestation_contract"
path = "tests/release_attestation_contract.rs"
[[test]]
name = "release_floating_tag_predicate_single_owner"
path = "tests/release_floating_tag_predicate_single_owner.rs"
[[test]]
name = "reliability_all"
path = "tests/reliability_all.rs"
[[test]]
name = "sarif_github_compliance"
path = "tests/sarif_github_compliance.rs"
[[test]]
name = "snapshots"
path = "tests/snapshots/main.rs"
[[test]]
name = "stress_all"
path = "tests/stress_all.rs"
[[test]]
name = "target_spec_org_contracts"
path = "tests/target_spec_org_contracts.rs"
[[test]]
name = "tool_contract"
path = "tests/tool_contract.rs"
[[test]]
name = "unit_daemon_stdin_replay"
path = "tests/unit_daemon_stdin_replay.rs"
[[test]]
name = "vyre_pin_coherence_lane3"
path = "tests/vyre_pin_coherence_lane3.rs"
[dependencies.anyhow]
version = "=1.0.103"
[dependencies.blake3]
version = "=1.8.5"
[dependencies.bytes]
version = "=1.11.1"
[dependencies.chrono]
version = "=0.4.44"
[dependencies.clap]
version = "=4.6.1"
features = ["derive"]
[dependencies.clap_complete]
version = "=4.6.0"
[dependencies.dirs]
version = "=6.0.0"
[dependencies.flate2]
version = "=1.1.9"
[dependencies.futures-util]
version = "=0.3.32"
[dependencies.hex]
version = "=0.4.3"
[dependencies.keyhog-core]
version = "=0.5.73"
[dependencies.keyhog-profile]
version = "=0.5.73"
[dependencies.keyhog-scanner]
version = "=0.5.73"
default-features = false
[dependencies.keyhog-sources]
version = "=0.5.73"
default-features = false
[dependencies.keyhog-verifier]
version = "=0.5.73"
optional = true
[dependencies.mimalloc]
version = "=0.1.52"
optional = true
default-features = false
[dependencies.minisign-verify]
version = "=0.2.4"
[dependencies.notify]
version = "=8.0.0"
[dependencies.parking_lot]
version = "=0.12.5"
[dependencies.rand]
version = "=0.8.6"
[dependencies.rayon]
version = "=1.12.0"
[dependencies.reqwest]
version = "=0.12.28"
features = [
"json",
"stream",
"cookies",
"multipart",
"blocking",
]
[dependencies.semver]
version = "=1.0.28"
[dependencies.serde]
version = "=1.0.229"
features = ["derive"]
[dependencies.serde_json]
version = "=1.0.150"
[dependencies.sha1]
version = "=0.10.6"
[dependencies.sha2]
version = "=0.10.9"
[dependencies.tar]
version = "=0.4.45"
[dependencies.tempfile]
version = "=3.27.0"
[dependencies.tokio]
version = "=1.53.1"
features = ["full"]
[dependencies.tokio-util]
version = "=0.7.18"
features = ["codec"]
[dependencies.toml]
version = "=1.1.3"
[dependencies.tracing]
version = "=0.1.44"
[dependencies.tracing-subscriber]
version = "=0.3.23"
features = ["env-filter"]
[dev-dependencies.httpmock]
version = "=0.8.3"
[dev-dependencies.keyhog-core]
version = "=0.5.73"
[dev-dependencies.keyhog-scanner]
version = "=0.5.73"
default-features = false
[dev-dependencies.keyhog-sources]
version = "=0.5.73"
default-features = false
[dev-dependencies.proptest]
version = "=1.11.0"
[dev-dependencies.regex]
version = "=1.13.1"
[dev-dependencies.serde_json]
version = "=1.0.150"
[dev-dependencies.serde_yaml]
version = "=0.9.34"
[dev-dependencies.tempfile]
version = "=3.27.0"
[dev-dependencies.toml]
version = "=1.1.3"
[target."cfg(unix)".dependencies.libc]
version = "=0.2.186"
[target."cfg(windows)".dependencies.windows-sys]
version = "=0.61.2"
features = [
"Win32_Storage_FileSystem",
"Win32_System_WindowsProgramming",
]