Skip to content

qos_core: add attestation/manifest verification helpers - #765

Draft
emostov wants to merge 2 commits into
mainfrom
zeke/manifest-fake-and-verify-helpers
Draft

qos_core: add attestation/manifest verification helpers#765
emostov wants to merge 2 commits into
mainfrom
zeke/manifest-fake-and-verify-helpers

Conversation

@emostov

@emostov emostov commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Adds qos_core::verify::{verify_attestation_and_manifest, verify_attestation_and_manifest_envelope}.

emostov added a commit to tkhq/rust-sdk that referenced this pull request Jul 16, 2026
The fake manifest builder and trust chain verifier were ported verbatim
to qos_core::protocol::services::boot::{fake, verify} in qos PR #765
(tkhq/qos#765). tvc-axum tests already consume
them from qos_core, so the crate has no remaining users.
Comment thread src/qos_core/src/verify.rs
Comment thread src/qos_core/src/verify.rs
@emostov emostov changed the title qos_core: add fake manifest builder and attestation/manifest verification helpers qos_core: add attestation/manifest verification helpers Jul 16, 2026
@emostov
emostov force-pushed the zeke/manifest-fake-and-verify-helpers branch 5 times, most recently from 4bc275c to a3dfc25 Compare July 23, 2026 19:06
Add a mock-gated boot::fake module with FakeManifestBuilder and helpers
for generating fake v2 manifests, envelopes, and quorum members in
tests, including real threshold signatures over the manifest hash via
build_envelope_approved_by. Ported from rust-sdk's tvc-utils crate.

qos_core: add attestation and manifest verification helpers

Add boot::verify with verify_attestation_and_manifest, which checks a
manifest envelope against caller-supplied VerificationExpectations,
binds it to an NSM attestation document (user data and PCR0-3), verifies
the document up to a root CA, checks manifest-set threshold approvals,
and returns the enclave's ephemeral public key. Ported from rust-sdk's
tvc-utils crate.

qos_core: add manifest/share set expectations to verify helpers

Allow callers of verify_attestation_and_manifest to verify the manifest
set and share set, either by exact match (threshold and members) or by
expecting individual members to be in a set.

qos_core: verify boot-phase manifest commitment PCR in verify helpers

verify_attestation_and_manifest now takes a ManifestCommitmentKind and
checks that PCR16 (setup) or PCR17 (live) commits to the manifest hash
and the enclave's ephemeral public key, matching the commitments QOS
extends and locks at boot.

qos_core: drop the fake manifest builder

Remove the boot::fake module and its re-exports; the verify tests now
construct manifests with minimal test-local helpers.

qos_core: separate verify helper tests
@emostov
emostov force-pushed the zeke/manifest-fake-and-verify-helpers branch from a3dfc25 to 4542a60 Compare July 23, 2026 19:28
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