Skip to content

feat(corim): Support Launch Measurement CoRIM#122

Merged
chris-oo merged 1 commit into
microsoft:mainfrom
mingweishih:launch_corim
Jun 9, 2026
Merged

feat(corim): Support Launch Measurement CoRIM#122
chris-oo merged 1 commit into
microsoft:mainfrom
mingweishih:launch_corim

Conversation

@mingweishih

@mingweishih mingweishih commented May 26, 2026

Copy link
Copy Markdown
Contributor

This PR adds the support of generating Launch Measurement CoRIM that endorses the launch measurement and maps the measurement to SVN.
The PR also introduces IgvmSeralizer that allows the user to query the launch measurement computed based on IGVM file.

For now, gate all of this functionality behind the corim feature.

@mingweishih mingweishih requested a review from a team as a code owner May 26, 2026 20:13
@mingweishih mingweishih force-pushed the launch_corim branch 10 times, most recently from 40eabf9 to 9a6b753 Compare June 1, 2026 23:37
@mingweishih mingweishih force-pushed the launch_corim branch 3 times, most recently from ca52554 to 90abf0a Compare June 3, 2026 22:46
@mingweishih mingweishih changed the title Support Launch Measurement Corim (feature-gated) feat(corim): Support Launch Measurement CoRIM Jun 3, 2026
@mingweishih mingweishih force-pushed the launch_corim branch 2 times, most recently from 5607bed to f2d9bb2 Compare June 5, 2026 21:00
Add the corim module that generates and validates CoRIM (Concise
Reference Integrity Manifest) documents for launch measurement.

The crate produces CBOR-encoded, tag-501-wrapped CoRIM documents
containing:
- A reference-values triple with the launch measurement digest
- A conditional-endorsement-series triple mapping the digest to an
  exact SVN (microsoft#6.552)

Supported platforms (via IgvmPlatformType):
- Intel TDX (SHA-384, mkey "MRTD")
- AMD SEV-SNP (SHA-384, mkey "MEASUREMENT")
- Microsoft VBS (SHA-256, mkey "MEASUREMENT")

Key design decisions:
- Strict profile enforcement: profile URI required, exactly one CoMID,
  CES required, only exact SVN, tag-id verified via UUIDv5
- Profile URI: tag:microsoft.com,2026:launch-measurement/v1

Signed-off-by: Ming-Wei Shih <mishih@microsoft.com>
@chris-oo chris-oo merged commit 7ca670e into microsoft:main Jun 9, 2026
6 checks passed
chris-oo pushed a commit to microsoft/openvmm that referenced this pull request Jul 10, 2026
Bump the workspace igvm/igvm_defs dependencies to microsoft/igvm rev
3d1a950116d624746bf3342e09ea0a3416d89dd3 (current main tip). This pulls
in:

- [PR #109](microsoft/igvm#109) which pads
`SevVmsa` out to a full 4 KiB page, whereas `x86defs::snp::SevVmsa`
produced by the VP context builder is the architectural 1648-byte
structure.
- [PR #122](microsoft/igvm#122) which adds CoRIM
launch-measurement APIs.
- New `AArch64Register` variants (X2-X7) and a new
`IgvmDirectiveHeader::AArch64CcaVpContext` variant.

Adapt local callers:

- igvmfilegen's `import_pages` SNP branch zero-pads the incoming VMSA up
to the igvm crate's expected size before calling
`SevVmsa::read_from_bytes`, and the strict size check is relaxed to
allow any input no larger than the padded size.
- `vm/loader` and `vmm_core/vm_loader` mirror the new `AArch64Register`
X2-X7 variants.
- `openvmm_core`'s IGVM directive matcher adds `AArch64CcaVpContext`
arms (todo-stubbed; no callers exercise CCA yet).

This is a no-op for current functionality and is a prerequisite for the
upcoming CoRIM endorsement support.

Signed-off-by: Ming-Wei Shih <mishih@microsoft.com>
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.

2 participants