refactor(verify): delegate shared attestation crypto to agent-manifest 0.5#413
Merged
Conversation
…t 0.5 Removes cMCP's duplicated cryptographic verification in favor of the shared agent-manifest library (single source of truth across the org, consumed via PyPI). SNP report-signature -> agent_manifest.verify_snp_signature; VCEK and PCK certificate-chain verification -> agent_manifest.verify_cert_chain (the generic, algorithm-agnostic verifier). cMCP keeps its DCAP quote parser, *VerificationResult shapes, TR semantics, and all binding checks; behavior is unchanged. TPM stays local (Phase-1 parse-only; no AK sig/chain to share). Dep: agent-manifest>=0.5. 814 tests pass unchanged; ruff + mypy clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Consolidates cMCP's attestation crypto onto agent-manifest's shared verification library (0.5.0, via PyPI) — one implementation for the org instead of duplicated copies.
What now delegates to agent-manifest
agent_manifest.verify_snp_signature(+parse_snp_report).agent_manifest.verify_cert_chain, the generic algorithm-agnostic verifier (EC / RSA-PSS / RSA-PKCS#1 v1.5, fingerprint-pinned root). This was the genuinely-duplicated core (implemented per-repo before). cMCP'sverify_vcek_chainand the TDX PCK-chain walk are now thin calls into it;_snp_report_signature_derand the two_cert_signed_bycopies are removed.What stays local (deliberately)
parse_td_quote/_ParsedQuote),_SnpAttestationReportstruct,SNPVerificationResult/TDXVerificationResultshapes, TR-field semantics, and all report_data/qualifying-data binding checks — format-glue + cMCP orchestration, not shared crypto.Guarantees
Behavior unchanged, no check weakened: all 814 unit tests pass unchanged; ruff + mypy clean. Dep bumped to
agent-manifest>=0.5.🤖 Generated with Claude Code