test(fixtures): a third Intel TDX capture at SEAM SVN 15 (#117) - #125
Open
zohebk8s wants to merge 2 commits into
Open
test(fixtures): a third Intel TDX capture at SEAM SVN 15 (#117)#125zohebk8s wants to merge 2 commits into
zohebk8s wants to merge 2 commits into
Conversation
…o#117) Two captures cannot separate firmware movement from platform difference and three can. tdx_quote_gcp.json and tdx_quote_azure.json both report SEAM SVN 13 with byte 2 at 8 and at 4, which shows byte 2 is not the SEAM module version but cannot show whether byte 0 moves on its own. This one reports 0f 01 0a: SEAM SVN 15, byte 1 unchanged at 1, byte 2 at 10. Byte 0 moves independently. A genuine DCAP v4 quote from a GCP c3-standard-4 confidential VM, taken through configfs TSM directly rather than through a provider, because a quote that arrived via a library is a quote plus that library's assumptions and the fields this capture exists to settle are the ones nobody had parsed yet. Three conditions, all met in the fixture rather than in a commit message. It carries its own provenance, kernel, instance type, zone, date and method, so a reader three years from now knows what it is a capture of, and the run log sits beside it. It is labelled provenance: external, because the other two are this project's and this one is not, and a fixture set where that distinction is invisible is worse than one where it is written down. And no appraisal rule rests on it alone: a test asserts no other file in the suite references it. REPORTDATA binds sha256 of a nonce recorded in the fixture, so the binding is re-derivable rather than something a reader takes on trust. The capture verifies end to end and chains to the same Intel SGX root both existing captures pin. The tests read the fields as raw slices of the report body rather than through a parsed attribute, so this fixture stands alone and can land before or after the parser change in agentrust-io#117 without either waiting on the other. Refs agentrust-io#117 Signed-off-by: Mohammed Zoheb Shaik <zoheb.shaik7@gmail.com>
…m-svn-15-117 Signed-off-by: Mohammed Zoheb Shaik <zoheb.shaik7@gmail.com> # Conflicts: # CHANGELOG.md
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.
What and why
The third Intel TDX capture, as agreed on #117.
Two captures cannot separate firmware movement from platform difference and three can.
tdx_quote_gcp.jsonandtdx_quote_azure.jsonboth report SEAM SVN 13 with byte 2 at 8 and at 4, which shows byte 2 is not the SEAM module version but cannot show whether byte 0 moves on its own. This one reports0f 01 0a: SEAM SVN 15, byte 1 unchanged at 1, byte 2 at 10. Byte 0 moves independently, which is the finding the carried-not-judged rule in the parser change rests on.A genuine DCAP v4 quote from a GCP c3-standard-4 confidential VM, taken through configfs TSM directly rather than through a provider, because a quote that arrived via a library is a quote plus that library's assumptions, and the fields this capture exists to settle are the ones nobody had parsed yet.
Your three conditions, met in the fixture rather than in this description
It carries its capture metadata. Kernel
7.0.0-1011-gcp, instance typec3-standard-4, zone, capture date, and that the quote came through/sys/kernel/config/tsm/reportdirectly. The run log sits beside it attdx_quote_gcp_seam15.run-log.txt, with the dmesg TDX lines, the CPU model, and the parsed fields at the offsets in question.It is labelled as external.
"provenance": "external"with the contributor named. The other two fixtures are this project's and this one is not, and a fixture set where that distinction is invisible is worse than one where it is written down. A test asserts the existing fixtures carry no such label and this one does.No appraisal rule rests on it alone. A test walks the test tree and asserts no other file references this fixture, so a threshold cannot quietly come to depend on it. Every floor in the suite is set from the captures this project took itself.
Type
Checklist
git commit -s)pytest -q,mypy --strict src/wcm, andbanditpass locally; coverage 80% or better. 677 passed, 4 skipped; mypy clean; leak scan clean.CHANGELOG.mdupdatedTEE_TCB_SVNmoves independently of byte 2, and nothing else. No threshold is derived from it.Notes for reviewers
It stands alone
The tests read the fields as raw slices of the TD report body rather than through any parsed attribute, so this fixture does not depend on the parser change in #117 and the two can land in either order without one waiting on the other.
The binding is re-derivable
REPORTDATAbindssha256(nonce)with the nonce recorded in the fixture, so you can recompute it rather than take it on trust. The capture verifies end to end and chains to Intel SGX root44a0196b2b99f889b8e149e95b807a350e7424964399e885a7cbb8ccfab674d3, the same root both existing captures pin.What you can check without leaving the tree
Byte 1 is
01on all three. Byte 2 differs on all three.One correction to the record
The capture I described in the issue was taken on 9 September and the file was subsequently lost with the instance. This is a fresh capture taken on the same platform, and it reproduces the earlier reading exactly:
0f 01 0a, SEAM SVN 15. You are getting the bytes rather than my word for them, which was your argument for it landing as a fixture in the first place.