Skip to content

build(deps): update agent-manifest requirement from >=0.7.0 to >=0.10.0 - #95

Merged
imran-siddique merged 1 commit into
mainfrom
dependabot/pip/agent-manifest-gte-0.10.0
Aug 10, 2026
Merged

build(deps): update agent-manifest requirement from >=0.7.0 to >=0.10.0#95
imran-siddique merged 1 commit into
mainfrom
dependabot/pip/agent-manifest-gte-0.10.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 10, 2026

Copy link
Copy Markdown
Contributor

Updates the requirements on agent-manifest to permit the latest version.

Release notes

Sourced from agent-manifest's releases.

agent-manifest 0.10.0

Exports the SEV-SNP ABI offset table (SNP_OFFSETS, SNP_REPORT_LEN) so downstreams can delete the ctypes mirrors they kept solely to read offsets from.

Completes what 0.9.0 started. cmcp used its struct as an offset oracle across seven test files, so sharing the parse without sharing the table would only have moved the duplication into test scaffolding, where it would drift silently and nothing would catch it.

The offsets are checked against the genuine Azure capture rather than against themselves.

Purely additive, no behaviour change. Full detail in #262.

What's Changed

Full Changelog: agentrust-io/agent-manifest@python-v0.9.0...python-v0.10.0

Changelog

Sourced from agent-manifest's changelog.

[0.10.0] — 2026-08-01

Exports the SEV-SNP ABI offset table so downstreams can delete the ctypes mirrors they kept solely to read offsets from. Completes what 0.9.0 started: cmcp used its struct as an offset oracle across seven test files, so sharing the parse without sharing the table would only have moved the duplication into test scaffolding, where it would drift silently.

Added

[SDK] SNP_OFFSETS and SNP_REPORT_LEN are public. The offsets are the contract consumers build and appraise reports against, and they are now checked against the genuine Azure capture rather than against themselves.

[0.9.0] — 2026-08-01

Shares the SEV-SNP report union so cmcp and ca2a can delete four copies of the layout between them, and restores a check that existed only in the copies being deleted: the report's declared sig_algo is now verified before the signature is checked under it. Phase A2 of consolidating TEE verification into this package.

Added

[SDK] SnpReport now carries guest_svn, vmpl and signature_algo, and load_snp_cert_chain() is public. Phase A2 of the TEE consolidation: cmcp and ca2a carried four copies of the SEV-SNP report layout between them (two inside cmcp alone), and all four agreed on every offset, so this is a union rather than a reconciliation. The three fields were parsed by the downstream copies and not by this one, which meant a consumer of agent-manifest could not enforce checks those copies enforced.

load_snp_cert_chain() splits a concatenated PEM into (vcek, ask, ark) by shape rather than order: the VCEK is the only EC leaf, and of the two RSA certificates the self-signed one is the ARK. It came from cmcp, which had it and this package did not.

Fixed

[SDK] verify_snp_signature() now checks the report's declared sig_algo before verifying. It assumed ECDSA-P384/SHA-384 because that is the only scheme AMD has defined, and verified under it without confirming the report said so. Both downstream copies checked this field; the shared implementation did not, so consolidating onto it would have silently dropped a check. A report declaring anything other than SIG_ALGO_ECDSA_P384_SHA384 now raises rather than being appraised under the wrong scheme.

This surfaced two synthetic fixtures in this repo that left sig_algo at zero, which no AMD processor emits — the genuine capture in tests/vectors/snp/azure_snp_report_redacted.bin carries 1. Both fixtures described a report that cannot exist and are corrected. Same shape of defect as the cmcp TPM fixture found in 0.8.0.

[0.8.0] — 2026-08-01

Shares the TPMT_SIGNATURE parse and teaches the quote parser both attest framings, so cmcp and ca2a can delete their copies rather than keep three implementations of the same wire formats in step by hand. Phase A1 of consolidating TEE verification into this package. No change to manifest signing or verification behaviour.

Added

[SDK] parse_tpmt_signature() and ParsedSignature are now public, so cmcp and ca2a can stop carrying a copy each. Both had byte-identical implementations of the TPMT_SIGNATURE unwrap that tpm2_quote -s and tpm2-pytss's signature.marshal() produce, differing only in which exception they raised; cmcp's comment already named this as "the piece agent-manifest does not model". It raises TpmVerificationError rather than ValueError, so a downstream migrating off its own copy needs to widen its except clause. struct.error on a truncated buffer is now caught and re-raised as TpmVerificationError, which ca2a handled and cmcp did not.

[SDK] parse_tpm_quote() accepts a size-prefixed TPM2B_ATTEST as well as a bare TPMS_ATTEST. tpm2_quote -m writes the bare form and other producers write the wrapped one, so a verifier that accepts only one rejects genuine quotes from standard tooling. TpmQuote.raw is now always the inner TPMS_ATTEST, and verify_tpm_quote() checks the AK signature over that rather than over its argument — verifying over the outer bytes would have failed a real wrapped quote. For bare input, which is everything the suite previously exercised, both are the same bytes and behaviour is unchanged.

Framing is decided by requiring the magic to appear under one reading or the other, not by the leading bytes alone. The obvious implementation, "magic at offset 0 means bare, otherwise treat the first two bytes as a length", silently reinterprets a blob with a corrupt magic as a framing fault and reports TPM2B_ATTEST size field invalid, which sends whoever is debugging a one-bit corruption to the wrong problem. Two tests caught this and both are kept as regression guards.

Changed

[SPEC] Target standards body retargeted from AAIF to CoSAI Working Stream 4, an OASIS Open Project, following the Phase 1 RFC in cosai-oasis/ws4-secure-design-agentic-systems#149. Affects the spec header, section 3.1 (who assigns the canonical @context URL), section 3.2.5 (scanner registry), section 10.1 through 10.3, and the governance set: CHARTER.md, GOVERNANCE.md, MAINTAINERS.md, ANTITRUST.md, CONTRIBUTING.md, ROADMAP.md, README.md. No normative data-model, cryptographic, or conformance change; nothing about how a manifest is signed or verified moves.

Three things did not change mechanically with the rest. The conformance test suite in section 8.2 was described as shipping "alongside the AGT donation to AAIF" and is now decoupled, because AGT's standards destination is governed separately and is not set by this charter. Two AAIF references are retained deliberately: the AAIF Spec Enhancement Proposal (SEP) route in section 6.3 and the MCP (Anthropic / AAIF) row in section 10.4 both describe MCP's own governance home, not this specification's target. And the IP terms are stated as consequences rather than commitments: the OASIS Open Projects IPR Policy requires a CLA plus a patent non-assert on non-trivial contributions, which is stricter than the DCO-only regime in force today, so CHARTER.md section 4 records that it takes effect only on WS4 acceptance and that the founding maintainer's terms under it need counsel sign-off first. Trademark transfer terms are marked to be determined rather than asserted.

Fixed

[SDK] parse_tdx_quote_signature() now rejects a quote whose declared lengths overrun the buffer instead of silently parsing a shorter value. Four lengths come from the quote, which is untrusted input: the signature-data size, cert_size, qe_auth_size, and pck_size. Python slicing clamps rather than overreading, so an inflated length previously yielded a short slice and parsing continued against whatever fit. No read was ever out of bounds and the downstream signature check would fail, so this is fail-closed hardening rather than a memory-safety fix, but a verifier should reject a quote that declares 400 bytes and supplies 300 rather than appraise the 300. Found while reviewing the same parse in cmcp#420, which shares the derivation.

[0.7.0] — 2026-07-27

Shares the hardware-validated TDX quote-signature parse so the sibling repos can stop carrying their own copies of the offsets, and specifies the v0.2 COSE envelope. No change to manifest signing or verification behaviour.

Added

... (truncated)

Commits
  • 5380004 feat(tee): export the SEV-SNP ABI offset table (#262)
  • cfdebcc chore(release): 0.9.0 (#261)
  • ab72cfe feat(tee): share the SNP report union and check the declared signature algori...
  • e037f52 chore(ci): pin agentrust-io/.github checkout to an immutable SHA (#257)
  • 8845d7b chore(release): 0.8.0 (#259)
  • 102881e feat(tee): share the TPMT_SIGNATURE parse and accept both quote framings (#258)
  • a588377 Merge pull request #253 from agentrust-io/docs/retarget-standards-body-cosai
  • d58b311 docs: retarget the standards body from AAIF to CoSAI WS4
  • 941ff4e Merge pull request #252 from agentrust-io/docs/strip-em-dashes
  • e668fa6 docs: strip em dashes from the README; correct the launch tense
  • Additional commits viewable in compare view

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Updates the requirements on [agent-manifest](https://github.com/agentrust-io/agent-manifest) to permit the latest version.
- [Release notes](https://github.com/agentrust-io/agent-manifest/releases)
- [Changelog](https://github.com/agentrust-io/agent-manifest/blob/main/CHANGELOG.md)
- [Commits](agentrust-io/agent-manifest@python-v0.7.0...python-v0.10.0)

---
updated-dependencies:
- dependency-name: agent-manifest
  dependency-version: 0.10.0
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update python code labels Aug 10, 2026
@dependabot
dependabot Bot requested a review from imran-siddique as a code owner August 10, 2026 04:41
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update python code labels Aug 10, 2026

@imran-siddique imran-siddique left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Floor bump, CI green. Approving to clear the maintainer hold.

@imran-siddique
imran-siddique merged commit aea844e into main Aug 10, 2026
8 of 9 checks passed
@imran-siddique
imran-siddique deleted the dependabot/pip/agent-manifest-gte-0.10.0 branch August 10, 2026 17:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant