selftests/tdx: Test TDX attestation GetReport support
authorKuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
Wed, 16 Nov 2022 22:38:20 +0000 (14:38 -0800)
committerDave Hansen <dave.hansen@linux.intel.com>
Thu, 17 Nov 2022 19:04:28 +0000 (11:04 -0800)
commit00e07cfbdf0b232f7553f0175f8f4e8d792f7e90
tree2a157f6a5b04e7824a9d7c7f85af08641d58d2a3
parent6c8c1406a6d6a3f2e61ac590f5c0994231bc6be7
selftests/tdx: Test TDX attestation GetReport support

Attestation is used to verify the trustworthiness of a TDX guest.
During the guest bring-up, the Intel TDX module measures and records
the initial contents and configuration of the guest, and at runtime,
guest software uses runtime measurement registers (RMTRs) to measure
and record details related to kernel image, command line params, ACPI
tables, initrd, etc. At guest runtime, the attestation process is used
to attest to these measurements.

The first step in the TDX attestation process is to get the TDREPORT
data. It is a fixed size data structure generated by the TDX module
which includes the above mentioned measurements data, a MAC ID to
protect the integrity of the TDREPORT, and a 64-Byte of user specified
data passed during TDREPORT request which can uniquely identify the
TDREPORT.

Intel's TDX guest driver exposes TDX_CMD_GET_REPORT0 IOCTL interface to
enable guest userspace to get the TDREPORT subtype 0.

Add a kernel self test module to test this ABI and verify the validity
of the generated TDREPORT.

Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Reviewed-by: Tony Luck <tony.luck@intel.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Acked-by: Kai Huang <kai.huang@intel.com>
Acked-by: Wander Lairson Costa <wander@redhat.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Link: https://lore.kernel.org/all/20221116223820.819090-4-sathyanarayanan.kuppuswamy%40linux.intel.com
tools/testing/selftests/Makefile
tools/testing/selftests/tdx/Makefile [new file with mode: 0644]
tools/testing/selftests/tdx/config [new file with mode: 0644]
tools/testing/selftests/tdx/tdx_guest_test.c [new file with mode: 0644]