Proto commits in google/go-sev-guest

These 17 commits are when the Protocol Buffers files have changed:

Commit:d0bc3f7
Author:onlyshawn
Committer:onlyshawn

feat: Add mitigation vector fields to SEV-SNP report

The documentation is generated from this commit.

Commit:6583b01
Author:Dionna Glaze
Committer:Dionna Glaze

Finish the KDS support v3 reports.

Commit:68662ea
Author:Dionna Glaze
Committer:Dionna Glaze

Change FMS fields to a single CPUID_1_EAX formatted field. Adds consideration for Turin and the model value in Cpuid, not just extended model.

Commit:21132f0
Author:Dionna Amalie Glaze
Committer:GitHub

Revert "Change FMS fields to a single CPUID_1_EAX formatted field."

Commit:b43f889
Author:Dionna Glaze
Committer:Dionna Glaze

Change FMS fields to a single CPUID_1_EAX formatted field.

Commit:5e3e5f5
Author:Daniel Weiße
Committer:Daniel Weiße

abi: parse v3 attestation reports Signed-off-by: Daniel Weiße <dw@edgeless.systems>

Commit:9ce0c8f
Author:Dionna Glaze
Committer:Dionna Glaze

Clean up internal deprecated interface uses Packages and tests should not use deprecated fields and functions, so fix up some newly deprecated items. The check.proto line wrap is an internal lint change.

Commit:3bd46e1
Author:Dionna Glaze
Committer:Dionna Glaze

Deprecate Product/ProductString for ProductLine There is inconsistent wording for product string arguments that leads to some confusing input/expectation mismatches. This change not only fixes some wording, but also allows tests that expect to validate a report's product to only care about the product line, and not the product name, which can include the stepping version. The test condition relaxation allows a Milan fleet of mixed staging values to pass verify_test.

Commit:7e30aca
Author:Dionna Glaze
Committer:Dionna Glaze

Fix check tool product behavior on hardware The product and stepping values that are default may not be the same across all testing environments, so add product_name as a flag to testing library. The stepping value does not necessarily need to be checked, so deprecate the stepping field of SevProduct and replace with a UInt32Value that can be nil. The checkProductName drops checking Stepping in favor of checking the nullable MachineStepping field. Signed-off-by: Dionna Glaze <dionnaglaze@google.com>

Commit:93c77e9
Author:Dionna Glaze
Committer:Dionna Glaze

Fix "modelstepping" handling in verification The "Milan-B0" naming in a product name is not directly derivable from the cpuid(1) values. Instead this B0 naming is from a different naming convention that comes from the development lifecycle that the manufacturer decides. Every stepping number that is visible to consumers is subject to a table lookup. That table can only be built from a piecemeal toilsome effort of following the manufacturers' publications about its product lines. This fix has been verified in hardware tests. Signed-off-by: Dionna Glaze <dionnaglaze@google.com>

Commit:b6001c9
Author:Dionna Glaze
Committer:Dionna Glaze

Add CertTableOptions for "extra" certs Deprecate firmware_cert in favor of an Extras map that can contain any number of extra certificates that can be validated with provided options. This adds to the basic "policy engine" that is validation primarily to have a simple entry level user experience. More sophisticated policy engines are not planned for this project. Signed-off-by: Dionna Glaze <dionnaglaze@google.com>

Commit:76c7dcd
Author:Dionna Glaze
Committer:Dionna Glaze

Add support for validating VLEK certificates This changes the AuthorKeyEn report field to a better-named SignerInfo. The interpretation of this field selects which key the fake signer will use when signing reports. The VLEK certificate extensions are now checked against AMD's VLEK specification. The difference is VLEK certs are like VCEK certs, except the HWID extension is swapped with a CSP_ID extension. Tests have been updated to reflect these changes, including new VLEK-specific test cases. Signed-off-by: Dionna Glaze <dionnaglaze@google.com>

Commit:b3bd186
Author:Dionna Glaze
Committer:Dionna Glaze

Improve product handling in attestations Collection of the product information uses the Device interface to allow for testing on non-SEV-SNP machines. The LinuxDevice will use CPUID information. Verification now uses product information from either the attestation or the verification options. The option value takes precedence. When both are missing, then the library defaults to the first version that was available for use: "Milan-B0". This extends the support of products to Genoa, but does not yet include the embedded AMD root and intermediate certificates for Genoa. Fixes Issue#11 and Issue#64. Signed-off-by: Dionna Glaze <dionnaglaze@google.com>

Commit:8c9936c
Author:Dionna Glaze
Committer:Dionna Glaze

Add firmware cert to certificate chain The host is permitted to provide any number of certificates in the data buffer returned by an extended request. Account for a fourth certificate that is specific to the firmware of the VM. The given GUID is that which GCE uses for indicating its own firmware endorsement document. This certificate is to be injected on the VM granularity instead of the machine granularity, by using the KVM_SEV_SNP_SET_CERTS ioctl. Update ci versions of protoc to versions on dev machine. Signed-off-by: Dionna Glaze <dionnaglaze@google.com>

Commit:6885970
Author:Dionna Glaze
Committer:Dionna Glaze

Add a fake KDS cache for reliable testing The GetSevGuest test client constructor will now produce a getter that appropriately matches the device. This requires embedding the real AMD CA bundle, but that's only used in test code. Signed-off-by: Dionna Glaze <dionnaglaze@google.com>

Commit:428c4f9
Author:Dionna Glaze
Committer:Dionna Glaze

CLI tool for validating and verifying reports This tool provides a command line interface for checking all expected properties of a SEV-SNP attestation report. Signed-off-by: Dionna Glaze <dionnaglaze@google.com>

Commit:414ba1a
Author:Dionna Glaze

Initial commit PiperOrigin-RevId: 468222927 Change-Id: Ic1bd52b4bbb1c5fc14202c5bd677601f7223b372