]> git.ipfire.org Git - thirdparty/linux.git/commit
KVM: Introduce KVM_EXIT_SNP_REQ_CERTS for SNP certificate-fetching
authorMichael Roth <michael.roth@amd.com>
Fri, 9 Jan 2026 23:17:32 +0000 (17:17 -0600)
committerSean Christopherson <seanjc@google.com>
Fri, 23 Jan 2026 17:14:15 +0000 (09:14 -0800)
commitfa9893fadbc245e179cb17f3c371c67471b5a8a8
treec7619ac1207fe0d7d5132b8ed87c8117785b1836
parent55780d8a1dcc93d2c4b33c565ada88df12c9f206
KVM: Introduce KVM_EXIT_SNP_REQ_CERTS for SNP certificate-fetching

For SEV-SNP, the host can optionally provide a certificate table to the
guest when it issues an attestation request to firmware (see GHCB 2.0
specification regarding "SNP Extended Guest Requests"). This certificate
table can then be used to verify the endorsement key used by firmware to
sign the attestation report.

While it is possible for guests to obtain the certificates through other
means, handling it via the host provides more flexibility in being able
to keep the certificate data in sync with the endorsement key throughout
host-side operations that might resulting in the endorsement key
changing.

In the case of KVM, userspace will be responsible for fetching the
certificate table and keeping it in sync with any modifications to the
endorsement key by other userspace management tools. Define a new
KVM_EXIT_SNP_REQ_CERTS event where userspace is provided with the GPA of
the buffer the guest has provided as part of the attestation request so
that userspace can write the certificate data into it while relying on
filesystem-based locking to keep the certificates up-to-date relative to
the endorsement keys installed/utilized by firmware at the time the
certificates are fetched.

[Melody: Update the documentation scheme about how file locking is
         expected to happen.]

Reviewed-by: Liam Merwick <liam.merwick@oracle.com>
Tested-by: Liam Merwick <liam.merwick@oracle.com>
Tested-by: Dionna Glaze <dionnaglaze@google.com>
Signed-off-by: Michael Roth <michael.roth@amd.com>
Signed-off-by: Melody Wang <huibo.wang@amd.com>
Signed-off-by: Michael Roth <michael.roth@amd.com>
Link: https://patch.msgid.link/20260109231732.1160759-2-michael.roth@amd.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
Documentation/virt/kvm/api.rst
arch/x86/kvm/svm/sev.c
arch/x86/kvm/svm/svm.h
include/uapi/linux/kvm.h