Create shared TCB Module
- Dominant language
- Python
- Stars
- 3
- Forks
- 7
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 8
Description
### Context
Follow-up from [PR #283](https://github.com/AMDEPYC/sev-certify/pull/283) - [(review thread from @DGonzalezVillal on `snphost_config_commit.py`)](https://github.com/AMDEPYC/sev-certify/pull/283#pullrequestreview-4986631251).
TCB parsing, comparison, and `to_u64` packing are already being reimplemented independently across 3 open PRs, and will keep recurring in every future TCB-touching test. Create a common module.
### Preferred long-term direction - structured output from snpguest / `sev` crate
In my opinion we should improve `snpguest` to emit consumable structured output (e.g. `snpguest display report --json`, and similar for TCB) backed by the `sev` crate, and have the harness consume that. That, or have a rust->python binding for the sev crate.
- We currently re-define report fields the `sev` crate already models, so we don't exercise our own crate or the user-facing `snpguest` tool.
- Every new report version has to be re-implemented here in addition to the crate/tool - double maintenance, and a place for the two to drift.
- Parsing human-readable CLI output is brittle - raw-offset parsing (as pr#247 does) avoids that but moves the version/generation-tracking burden into the harness.
### Proposal - short-term consolidation
Until structured `snpguest` output is available, collapse the three copies into a single shared module (e.g. `sev_verify/cert_tests/common/tcb.py`) rather than maintaining three.
Contributor guide
Assessment
This issue has not been assessed yet.