Fips crypto audit
Skill TGPSKI/go-fips-toolkit/.agents/skills/fips-crypto-audit
Runs a FIPS 140-3 crypto compliance audit across Go repositories, classifying every crypto/ import by risk and generating per-component reports. Separates first-party code from vendored dependencies and flags non-cryptographic uses of crypto primitives that break under GODEBUG=fips140=only. Use when auditing Go services for FIPS compliance, assessing new repos before adding them to FIPS CI, re-running an audit after vendor bumps, or generating evidence for compliance documentation.From its SKILL.md
npx -y skills add TGPSKI/go-fips-toolkit --skill fips-crypto-auditAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 20 days oldThe repository was created 20 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
4.0 KB, 826 tokens by cl100k_base, as published. Nobody here has run it
FIPS Crypto Audit
Run a FIPS 140-3 crypto compliance audit against Go repositories, classify findings, and generate reports.
When to Use
- Auditing Go services for FIPS compliance before running
GODEBUG=fips140=onlyin CI - Assessing new Go repos for crypto usage before adding to FIPS CI
- Re-running audits after upstream vendor bumps to check delta
- Generating evidence for compliance documentation
Inspect
- Check if repos are already cloned:
ls repos/ 2>/dev/null | wc -l
- Check for existing audit results:
ls audit/results/summary-*.txt 2>/dev/null | tail -5
- Determine the audit scope. Ask the user:
| Question | Default |
|---|---|
| Which repos to audit? | All repos in repos/ (or pass a repos.txt) |
| First-party only or full (including vendor)? | Full |
| Include vendor dependency summary? | Yes |
| Generate JSON output for downstream tools? | Yes |
Decide
Based on the scope, determine which scripts to run:
| Status | Action |
|---|---|
| Repos not cloned | Run ./audit/clone.sh first |
| Repos cloned, no recent audit | Run full audit |
| Repos cloned, recent audit exists | Ask user: re-run or analyze existing? |
| Single component requested | Run ./audit/audit-crypto.sh --component <name> |
Generate
Phase 1: Clone repos (if needed)
# From a repos.txt file
./audit/clone.sh repos.txt
# Specific repos
./audit/clone.sh -r myorg/my-service myorg/my-library
Phase 2: Run the audit
# Full audit with vendor summary and JSON
./audit/audit-crypto.sh --vendor-summary --json
# First-party only (skip vendor noise)
./audit/audit-crypto.sh --first-party-only --json
# Single component deep dive
./audit/audit-crypto.sh --component my-service --json
Phase 3: Analyze results
After the audit completes, read the summary and detail files. Present findings to the user organized by:
- First-party CRITICAL findings — these need immediate attention
- First-party WARNING findings — likely need fixes
- First-party AUDIT findings — classify as crypto vs non-crypto
- Vendor dependency hotspots — identify upstream coordination needs
- Grand totals — first-party vs vendor split
Phase 4: Deep inspection (if requested)
For each first-party CRITICAL/WARNING finding, do manual inspection:
# Show the actual code context around the finding
rg -n --type go -B 3 -A 5 'md5\.' repos/<component>/ --glob '!vendor/**'
Classify each finding as:
- ACTUAL CRYPTO — real cryptographic operation using non-FIPS algorithm → must fix
- NON-CRYPTO — hash used for content addressing, caching, dedup → swap algorithm
- TEST CODE — only in test files → low priority
- PROTOCOL-MANDATED — required by an RFC or protocol spec → needs upstream fix
Output
The audit produces:
audit/results/summary-<timestamp>.txt— human-readable summaryaudit/results/<component>-<timestamp>.txt— per-component detail filesaudit/results/audit-<timestamp>.json— machine-readable JSON (with--json)
Follow-up Skills
- Use
@fips-remediation-plan/SKILL.mdto generate component-specific TODO lists from audit results - Use
@fips-finding-triage/SKILL.mdto investigate and classify individual ambiguous findings
What ships with it: 3 files
3.9 KB alongside SKILL.md, 2 of them executable
references/
- classification-table.md3.8 KB
scripts/
- audit-crypto.shruns33 B
- clone.shruns26 B