Expand description
Implements a command line utility to generate IGVM files.
ModulesΒ§
- corim_
signature π - Support for patching CoRIM (Concise Reference Integrity Manifest) headers into an existing IGVM file.
- file_
loader π - Implements a loader that serializes the loaded state into the IGVM binary format.
- firmware_
dll π - Read an IGVM image from either a raw IGVM file or a
vmfirmwareigvmresource DLL. - identity_
mapping π - Implements creation of JSON formatted launch measurement identity documents. This comes from Intelβs TD Identity Mapping, and has been expanded for SNP and VBS. This format allows verifiers to validate a COSE Sign1 payload, and correlate that to a launch measurement and SVN.
- measurement_
diag π - Per-platform launch measurement diagnostics.
- platform_
mask π - Helpers for resolving
IgvmPlatformType<-> compatibility-mask mappings declared in an IGVM fileβs platform headers, and for deriving human-readable / file-name-safe short names for each supported platform. - snp_
id_ πblock - SEV-SNP ID block generation and signing.
- snp_
linux_ πdirect - Generation strategy for a self-contained SNP Linux-direct IGVM.
- vp_
context_ πbuilder - Defines the common VP context builder traits and methods for different isolation architectures.
StructsΒ§
- Platform
Meta π - Per-config measurement metadata captured during the build loop and consumed after merging to emit JSON identity documents and CoRIM launch endorsements.
EnumsΒ§
- Corim
Header πType - CoRIM header types for filtering
- Options π
- Platform π
- IGVM platform types for CLI selection.
TraitsΒ§
- Igvmfilegen
Register π - A trait to specialize behavior of the file builder based on different register types for different architectures. Different methods may need to be called depending on the register type that represents the given architecture.
FunctionsΒ§
- add_
snp_ πid_ block_ command - Add a SEV-SNP ID block to an existing IGVM file, either from an out-of-band signature (production) or signed with an ephemeral key (development/test).
- build_
endorsement_ πcorim - Build a
LaunchMeasurementtemplate for the given platformβs launch measurement at the configured guest SVN. - build_
endorsement_ πjson - Build a JSON identity document for a platform measurement.
- create_
igvm_ πfile - Create an IGVM file from the specified config
- debug_
validate_ πigvm_ file - Validate that the serialized IGVM file round-trips through the parser and re-serializer producing identical structural headers.
- dump_
corim_ πheaders - Dump CoRIM headers from an IGVM file.
- load_
image π - Load an image.
- load_
linux π - load_
uefi π - main π
- patch_
corim_ πsignature - Patch a CoRIM signature into an existing IGVM file.
- sibling_
path π - Build a sibling path of
outputnamed<base>-<isolation><ext>, wherebaseisoutputβs stem,<isolation>is derived frommeta.platform, andextincludes the leading dot (e.g.".json"or".cbor"). - snp_
temporary_ πsigning_ metadata_ from_ config - Extract temporary-signing metadata from the single SNP guest config.
- write_
igvm_ πfile_ atomic - Atomically write
datatooutput: write to a sibling temp file, then rename it into place. This prevents a crash or interruption during the write from corrupting the output (which may be the same file as the input for in-place edits). Same-volume renames are atomic on both POSIX and Windows (std::fs::renameusesMoveFileExWwithMOVEFILE_REPLACE_EXISTING).log_messageis emitted before the write. - write_
platform_ πsibling - Write a per-platform sibling file (a JSON identity document, an SNP ID
block signing payload, or a CoRIM launch endorsement) next to
output, named<base>-<isolation><ext>.extmust include the leading dot.