[package]
edition = "2021"
rust-version = "1.89"
name = "keyhog-core"
version = "0.5.44"
authors = ["Santh Project <contact@santh.dev>"]
build = "build.rs"
exclude = ["detectors/.keyhog-cache.json"]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "keyhog-core: shared data model and detector specifications for the KeyHog secret scanner"
homepage = "https://github.com/santhreal/keyhog"
documentation = "https://docs.rs/keyhog-core"
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/santhreal/keyhog"
[package.metadata.santh]
status = "alpha"
[lib]
name = "keyhog_core"
path = "src/lib.rs"
[[example]]
name = "core_standalone"
path = "examples/core_standalone.rs"
[[test]]
name = "all_tests"
path = "tests/all_tests.rs"
[[test]]
name = "dedup_decoder_alias"
path = "tests/dedup_decoder_alias.rs"
[[test]]
name = "detector_corpus_integrity"
path = "tests/detector_corpus_integrity.rs"
[[test]]
name = "display_path_normalization"
path = "tests/display_path_normalization.rs"
[[test]]
name = "encoding_decode_boundary_truth_matrix"
path = "tests/encoding_decode_boundary_truth_matrix.rs"
[[test]]
name = "new_core_allowlist_spec"
path = "tests/new_core_allowlist_spec.rs"
[[test]]
name = "new_core_finding_dedup"
path = "tests/new_core_finding_dedup.rs"
[[test]]
name = "new_core_types"
path = "tests/new_core_types.rs"
[[test]]
name = "perf_algo_complexity"
path = "tests/perf_algo_complexity.rs"
[[test]]
name = "perf_suppression"
path = "tests/perf_suppression.rs"
[[test]]
name = "regression_allowlist_governance"
path = "tests/regression_allowlist_governance.rs"
[[test]]
name = "regression_allowlist_matching"
path = "tests/regression_allowlist_matching.rs"
[[test]]
name = "regression_allowlist_metadata_dedup"
path = "tests/regression_allowlist_metadata_dedup.rs"
[[test]]
name = "regression_allowlist_typoed_entries_fail_closed"
path = "tests/regression_allowlist_typoed_entries_fail_closed.rs"
[[test]]
name = "regression_auto_fix_runtime_extension_hook"
path = "tests/regression_auto_fix_runtime_extension_hook.rs"
[[test]]
name = "regression_auto_fix_tier_b_service_env_map"
path = "tests/regression_auto_fix_tier_b_service_env_map.rs"
[[test]]
name = "regression_calibration_beta"
path = "tests/regression_calibration_beta.rs"
[[test]]
name = "regression_chunk_metadata"
path = "tests/regression_chunk_metadata.rs"
[[test]]
name = "regression_compute_spec_hash"
path = "tests/regression_compute_spec_hash.rs"
[[test]]
name = "regression_confidence_scoring"
path = "tests/regression_confidence_scoring.rs"
[[test]]
name = "regression_config_precedence"
path = "tests/regression_config_precedence.rs"
[[test]]
name = "regression_config_severity_map"
path = "tests/regression_config_severity_map.rs"
[[test]]
name = "regression_config_toml_merge"
path = "tests/regression_config_toml_merge.rs"
[[test]]
name = "regression_core_text_primitives"
path = "tests/regression_core_text_primitives.rs"
[[test]]
name = "regression_credential_hash_stability"
path = "tests/regression_credential_hash_stability.rs"
[[test]]
name = "regression_csv_formula_injection"
path = "tests/regression_csv_formula_injection.rs"
[[test]]
name = "regression_encoding_base64_padding_edge_cases"
path = "tests/regression_encoding_base64_padding_edge_cases.rs"
[[test]]
name = "regression_finding_confidence_field"
path = "tests/regression_finding_confidence_field.rs"
[[test]]
name = "regression_finding_dedup"
path = "tests/regression_finding_dedup.rs"
[[test]]
name = "regression_finding_dedup_merge"
path = "tests/regression_finding_dedup_merge.rs"
[[test]]
name = "regression_finding_location_merge"
path = "tests/regression_finding_location_merge.rs"
[[test]]
name = "regression_finding_multi_location"
path = "tests/regression_finding_multi_location.rs"
[[test]]
name = "regression_finding_ordering"
path = "tests/regression_finding_ordering.rs"
[[test]]
name = "regression_finding_sarif_result"
path = "tests/regression_finding_sarif_result.rs"
[[test]]
name = "regression_finding_serde_roundtrip"
path = "tests/regression_finding_serde_roundtrip.rs"
[[test]]
name = "regression_git_hash_matches_checkout"
path = "tests/regression_git_hash_matches_checkout.rs"
[[test]]
name = "regression_html_report_coverage_panel"
path = "tests/regression_html_report_coverage_panel.rs"
[[test]]
name = "regression_html_report_scan_metadata_wired"
path = "tests/regression_html_report_scan_metadata_wired.rs"
[[test]]
name = "regression_html_report_script_breakout_xss"
path = "tests/regression_html_report_script_breakout_xss.rs"
[[test]]
name = "regression_html_report_xss_proptest"
path = "tests/regression_html_report_xss_proptest.rs"
[[test]]
name = "regression_hyperscan_cache_header"
path = "tests/regression_hyperscan_cache_header.rs"
[[test]]
name = "regression_lane7_law10_recall_guards"
path = "tests/regression_lane7_law10_recall_guards.rs"
[[test]]
name = "regression_lockdown_cache_fail_closed_on_unreadable_dir"
path = "tests/regression_lockdown_cache_fail_closed_on_unreadable_dir.rs"
[[test]]
name = "regression_merkle_incremental"
path = "tests/regression_merkle_incremental.rs"
[[test]]
name = "regression_merkle_incremental_skip"
path = "tests/regression_merkle_incremental_skip.rs"
[[test]]
name = "regression_merkle_spec_hash"
path = "tests/regression_merkle_spec_hash.rs"
[[test]]
name = "regression_oob_multistep_fail_closed"
path = "tests/regression_oob_multistep_fail_closed.rs"
[[test]]
name = "regression_org_split_merkle_and_allowlist_api"
path = "tests/regression_org_split_merkle_and_allowlist_api.rs"
[[test]]
name = "regression_path_normalize"
path = "tests/regression_path_normalize.rs"
[[test]]
name = "regression_pattern_required_literals"
path = "tests/regression_pattern_required_literals.rs"
[[test]]
name = "regression_redaction_mask"
path = "tests/regression_redaction_mask.rs"
[[test]]
name = "regression_redaction_policy"
path = "tests/regression_redaction_policy.rs"
[[test]]
name = "regression_redaction_zeroization"
path = "tests/regression_redaction_zeroization.rs"
[[test]]
name = "regression_report_alt_formats"
path = "tests/regression_report_alt_formats.rs"
[[test]]
name = "regression_report_csv_columns"
path = "tests/regression_report_csv_columns.rs"
[[test]]
name = "regression_report_escape_invariants"
path = "tests/regression_report_escape_invariants.rs"
[[test]]
name = "regression_report_format_coherence"
path = "tests/regression_report_format_coherence.rs"
[[test]]
name = "regression_report_gitlab_codequality"
path = "tests/regression_report_gitlab_codequality.rs"
[[test]]
name = "regression_report_gitlab_sast"
path = "tests/regression_report_gitlab_sast.rs"
[[test]]
name = "regression_report_junit_wellformed_proptest"
path = "tests/regression_report_junit_wellformed_proptest.rs"
[[test]]
name = "regression_report_junit_xml"
path = "tests/regression_report_junit_xml.rs"
[[test]]
name = "regression_report_output_bytes"
path = "tests/regression_report_output_bytes.rs"
[[test]]
name = "regression_report_sonarqube"
path = "tests/regression_report_sonarqube.rs"
[[test]]
name = "regression_report_text_format"
path = "tests/regression_report_text_format.rs"
[[test]]
name = "regression_rule_suppressor_predicates"
path = "tests/regression_rule_suppressor_predicates.rs"
[[test]]
name = "regression_sarif_information_uri"
path = "tests/regression_sarif_information_uri.rs"
[[test]]
name = "regression_sarif_partial_fingerprints"
path = "tests/regression_sarif_partial_fingerprints.rs"
[[test]]
name = "regression_sarif_region_bytes"
path = "tests/regression_sarif_region_bytes.rs"
[[test]]
name = "regression_sarif_schema"
path = "tests/regression_sarif_schema.rs"
[[test]]
name = "regression_sarif_taxonomies_autofix"
path = "tests/regression_sarif_taxonomies_autofix.rs"
[[test]]
name = "regression_sarif_taxonomy"
path = "tests/regression_sarif_taxonomy.rs"
[[test]]
name = "regression_scan_config_fields"
path = "tests/regression_scan_config_fields.rs"
[[test]]
name = "regression_scan_config_from_toml_str"
path = "tests/regression_scan_config_from_toml_str.rs"
[[test]]
name = "regression_scan_report_model"
path = "tests/regression_scan_report_model.rs"
[[test]]
name = "regression_sensitive_string_eq"
path = "tests/regression_sensitive_string_eq.rs"
[[test]]
name = "regression_sensitive_string_redaction"
path = "tests/regression_sensitive_string_redaction.rs"
[[test]]
name = "regression_severity_cmp"
path = "tests/regression_severity_cmp.rs"
[[test]]
name = "regression_severity_downgrade_threshold"
path = "tests/regression_severity_downgrade_threshold.rs"
[[test]]
name = "regression_severity_filter_label"
path = "tests/regression_severity_filter_label.rs"
[[test]]
name = "regression_severity_from_str"
path = "tests/regression_severity_from_str.rs"
[[test]]
name = "regression_severity_ordering"
path = "tests/regression_severity_ordering.rs"
[[test]]
name = "regression_severity_threshold_suppress"
path = "tests/regression_severity_threshold_suppress.rs"
[[test]]
name = "regression_spec_loader_failclosed"
path = "tests/regression_spec_loader_failclosed.rs"
[[test]]
name = "regression_text_summary_revoked_is_inactive"
path = "tests/regression_text_summary_revoked_is_inactive.rs"
[[test]]
name = "test_toml_compat"
path = "tests/test_toml_compat.rs"
[[test]]
name = "wave9_edge"
path = "tests/wave9_edge.rs"
[[test]]
name = "wave9_proptest"
path = "tests/wave9_proptest.rs"
[dependencies.ahash]
version = "=0.8.12"
[dependencies.anyhow]
version = "=1.0.103"
[dependencies.async-trait]
version = "=0.1.89"
[dependencies.blake3]
version = "=1.8.5"
features = ["pure"]
[dependencies.dirs]
version = "=6.0.0"
[dependencies.fs2]
version = "=0.4.3"
[dependencies.hex]
version = "=0.4.3"
[dependencies.indexmap]
version = "=2.14.0"
[dependencies.parking_lot]
version = "=0.12.5"
[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.sha2]
version = "=0.10.9"
[dependencies.smallvec]
version = "=1.15.1"
[dependencies.tempfile]
version = "=3.27.0"
[dependencies.thiserror]
version = "=2.0.18"
[dependencies.toml]
version = "=1.1.2"
[dependencies.tracing]
version = "=0.1.44"
[dependencies.url]
version = "=2.5.8"
[dependencies.vyre_libs]
version = "=0.6.5"
features = ["rule"]
package = "vyre-libs"
[dependencies.zeroize]
version = "=1.8.2"
features = ["derive"]
[dev-dependencies.proptest]
version = "=1.11.0"
[dev-dependencies.quick-xml]
version = "=0.41.0"
features = ["serialize"]
[dev-dependencies.tokio]
version = "=1.52.3"
features = [
"full",
"full",
]
[dev-dependencies.tracing-subscriber]
version = "=0.3.23"
features = [
"env-filter",
"fmt",
]
[build-dependencies.serde]
version = "=1.0.228"
features = ["derive"]
[build-dependencies.toml]
version = "=1.1.2"
[target."cfg(unix)".dependencies.libc]
version = "=0.2.186"