Skip to content

crypto-agility manifest: spec + qScan emit/validate (frontier #13) - #40

Merged
leonacostaok merged 1 commit into
mainfrom
feat/crypto-agility-manifest
Jul 27, 2026
Merged

leonacostaok merged 1 commit into
mainfrom
feat/crypto-agility-manifest

Conversation

@leonacostaok

Copy link
Copy Markdown
Member

Frontier initiative #13 MVP. A well-known-URL manifest so any agent, scanner, or CI bot can read a project's crypto posture like security.txt.

  • Spec docs/CRYPTO-AGILITY-MANIFEST.md (version 1): served at /.well-known/crypto-agility.json. Fields: subject, posture (readiness score, hybrid-KEX-in-use as an operator-assertable null-by-default since a static scan cannot observe a negotiated group, quantum-vulnerable counts by severity, HNDL-exposed count), cbomSummary (algorithm families, links to the full CBOM), optional attestation url (recorded, never fetched), and policy deadlines (NIST IR 8547 default: deprecate classical 2030, disallow 2035).
  • Emit: qscan crypto-agility emit [path] / qscan ./ --crypto-agility (stdout or -o), additive, always exit 0.
  • Validate: qscan crypto-agility validate <file>, strictly offline (local file only; a network fetch-and-validate + an MCP reader are documented follow-ups for the website side).

Verification: all tests pass (+16), benchmark F1 = 1.000, typecheck/lint/format clean, api:check matches (api docs regenerated), action dist rebuilt. Manual-merge per repo guardrail.

Add the crypto-agility manifest (roadmap frontier initiative 13, MVP): a
well-known-URL JSON document (/.well-known/crypto-agility.json) that publishes a
project's crypto posture so any agent, scanner, or CI bot can read it like
security.txt.

- core: buildCryptoAgilityManifest + validateCryptoAgilityManifest (zero-dep,
  hand-rolled JSON + validation). The manifest is derived from a scan's inventory
  and CBOM: version, generatedAt, posture (readiness score, hybrid-KEX assertion,
  quantum-vulnerable findings by severity, HNDL-exposed count), cbomSummary
  (families in use, asset count, CBOM serial), optional attestation URL, and policy
  (NIST IR 8547 2030/2035 by default, or an operator transitionDeadline).
- qscan: 'crypto-agility emit' / '--crypto-agility' (additive, always exits 0) and
  'crypto-agility validate <file>' (exit 0 valid / 1 invalid / 2 I/O). Validator is
  strictly offline; a remote fetch-and-validate is a website-side follow-up.
- docs/CRYPTO-AGILITY-MANIFEST.md spec, help text, CHANGELOG, regenerated API surface.
- Unit tests for emit shape and validate accept/reject; action bundle rebuilt.

Purely additive: detectors, detection F1 = 1.000, existing report formats, and scan
exit codes unaffected.
@leonacostaok
leonacostaok merged commit 82c57c2 into main Jul 27, 2026
14 checks passed
@leonacostaok
leonacostaok deleted the feat/crypto-agility-manifest branch July 27, 2026 05:07
@leonacostaok leonacostaok mentioned this pull request Jul 29, 2026
leonacostaok added a commit that referenced this pull request Jul 29, 2026
bumps every published package 0.5.x -> 0.6.0 (exact internal dep pins updated),
version constants, and re-bundles the action dist. ships the features that landed
since 0.5.0: hndl data-risk quantifier (#37) and the crypto-agility manifest
emitter + local validator (#40).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant