keyhog 0.5.73

GPU-accelerated secret scanner for code, Git history, cloud, containers, browser assets, and live credential verification
# Tier-B credential-keyword vocabulary for the entropy compact-assignment check.
#
# `compact`      = the broad credential words a `KEYWORD=<value>` assignment can
#                  carry (matched byte-exact against the normalized compact form).
# `key_material` = the explicit cryptographic key-material words. This list is the
#                  SINGLE OWNER shared by BOTH the compact credential-keyword
#                  membership check (entropy/keywords.rs) AND the entropy
#                  canonical-shape lift anchors (entropy/scanner.rs
#                  `KEY_MATERIAL_ANCHORS`), so a new key-material word reaches both
#                  gates from one place. Drop a word here to extend detection.
#
# Extending either list is Tier-B: add the keyword, rebuild (no code change).
# Both lists MUST stay non-empty (a build-time panic guards that).

compact = [
    "password",
    "passwd",
    "pwd",
    "passphrase",
    "token",
    "secret",
    "credential",
    "bearer",
    "authorization",
    "apikey",
    "accesskey",
    "authkey",
    "clientsecret",
    "appsecret",
]

key_material = [
    "privatekey",
    "signingkey",
    "encryptionkey",
    "masterkey",
    "secretkey",
    "sessionkey",
    "hmacsalt",
    "hmacseed",
    "passwordsalt",
    "salt",
    "nonce",
    "seed",
]

# `shape_needles` = the narrow credential-word set the suppression shape gates
# scan for inside a candidate value (TypeScript non-null identifier, dotted
# source identifier). Distinct from `compact` because shape detection needs
# only the words that appear inside identifier names, not the broad assignment
# vocabulary. SINGLE OWNER shared by `looks_like_ts_non_null_identifier` and
# `looks_like_dotted_source_identifier` in suppression::shape.
shape_needles = [
    "token",
    "secret",
    "key",
    "password",
    "passwd",
    "auth",
    "credential",
]