uselesskey-cli
Export and materialization helpers for handing off generated uselesskey fixtures to local files and common secret-management interchange formats.
This crate is intentionally focused on one-shot export: generate once, write artifacts or manifests, verify them later, stop.
Materialize
Use the manifest workflow when a repo wants static-like fixtures under
target/ or OUT_DIR without checking secret-shaped blobs into git.
Shape-only common lane:
build.rs consumers can keep this path slim with:
[]
= { = "0.9.0", = false }
Specialized RSA PKCS#8 build-time lane:
[]
= { = "0.9.0", = false, = ["rsa-materialize"] }
The workspace ships both compiled build-time examples:
crates/materialize-shape-buildrs-example/for the common shape-only patterncrates/materialize-buildrs-example/for the specialized RSA pattern
Bundle
Use the bundle workflow when a downstream test suite wants a deterministic directory of related fixture artifacts plus a manifest it can verify in CI.
verify-bundle reloads manifest.json, regenerates the expected artifacts from
the recorded seed/label/format/profile, and fails if any file or manifest
metadata is missing or changed. Bundles also include deterministic
receipts/materialization.json and receipts/audit-surface.json metadata files;
verify-bundle regenerates those receipts and fails on drift.
inspect-bundle runs the same verification first, then prints a short
human-readable summary of the profile, artifact count, scanner-safety posture,
runtime material count, private/symmetric material flags, and receipt kinds. It
does not print fixture payloads.
The export subcommands verify the bundle first, then render handoff payloads
for downstream tools. They write local files only; they do not call Kubernetes,
Vault, cloud APIs, or long-running secret stores.
scanner-safe is the default bundle profile. It emits public key material,
public certificate material, scanner-safe symmetric JWK shape data, and
near-miss token shapes. Use --profile runtime when a downstream test really
needs runtime-generated private or symmetric fixture material in the bundle.
Use --profile oidc when a downstream OIDC/JWKS validator needs a focused
contract pack:
The OIDC profile emits:
jwks/valid.jsonjwks/negative-duplicate-kid.jsonjwks/negative-missing-kid.jsontokens/valid-rs256.jsontokens/negative-alg-none.jsontokens/negative-bad-audience.json