qemu/backends
Huai-Cheng Kuo bc419a1cc5 backends: Initial support for SPDM socket support
SPDM enables authentication, attestation and key exchange to assist in
providing infrastructure security enablement. It's a standard published
by the DMTF [1].

SPDM supports multiple transports, including PCIe DOE and MCTP.
This patch adds support to QEMU to connect to an external SPDM
instance.

SPDM support can be added to any QEMU device by exposing a
TCP socket to a SPDM server. The server can then implement the SPDM
decoding/encoding support, generally using libspdm [2].

This is similar to how the current TPM implementation works and means
that the heavy lifting of setting up certificate chains, capabilities,
measurements and complex crypto can be done outside QEMU by a well
supported and tested library.

1: https://www.dmtf.org/standards/SPDM
2: https://github.com/DMTF/libspdm

Signed-off-by: Huai-Cheng Kuo <hchkuo@avery-design.com.tw>
Signed-off-by: Chris Browy <cbrowy@avery-design.com>
Co-developed-by: Jonathan Cameron <Jonathan.cameron@huawei.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
[ Changes by WM
 - Bug fixes from testing
]
Signed-off-by: Wilfred Mallawa <wilfred.mallawa@wdc.com>
[ Changes by AF:
 - Convert to be more QEMU-ified
 - Move to backends as it isn't PCIe specific
]
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Message-Id: <20240703092027.644758-3-alistair.francis@wdc.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2024-07-22 20:15:42 -04:00
..
tpm backends/tpm: Remove newline character in trace event 2024-06-10 13:05:27 -04:00
confidential-guest-support.c confidential guest support: Introduce new confidential guest support class 2021-02-08 16:57:37 +11:00
cryptodev-builtin.c backends/cryptodev-builtin: Fix local_error leaks 2024-04-29 15:26:39 +03:00
cryptodev-hmp-cmds.c hmp: add cryptodev info command 2023-03-07 12:38:59 -05:00
cryptodev-lkcf.c cryptodev: Use CryptoDevBackendOpInfo for operation 2023-03-07 12:38:59 -05:00
cryptodev-vhost-user.c cryptodev-vhost-user: add asymmetric crypto support 2023-06-23 02:54:44 -04:00
cryptodev-vhost.c cryptodev: Introduce cryptodev.json 2023-03-07 12:38:59 -05:00
cryptodev.c backends/cryptodev: Do not ignore throttle/backends Errors 2024-01-19 12:28:59 +01:00
dbus-vmstate1.xml docs: move D-Bus VMState documentation to source XML 2021-12-21 10:50:21 +04:00
dbus-vmstate.c backends: Constify VMState 2023-12-30 07:38:06 +11:00
host_iommu_device.c backends: Introduce HostIOMMUDevice abstract 2024-06-24 23:15:30 +02:00
hostmem-epc.c backends/hostmem-epc: Get rid of qemu_open_old() 2024-07-17 14:04:15 +03:00
hostmem-file.c backends/hostmem: Report error when memory size is unaligned 2024-06-08 10:33:38 +02:00
hostmem-memfd.c backends/hostmem: Report error when memory size is unaligned 2024-06-08 10:33:38 +02:00
hostmem-ram.c HostMem: Add mechanism to opt in kvm guest memfd via MachineState 2024-04-23 17:35:25 +02:00
hostmem-shm.c hostmem: add a new memory backend based on POSIX shm_open() 2024-07-03 18:14:06 -04:00
hostmem.c hostmem: simplify the code for merge and dump properties 2024-06-08 10:33:38 +02:00
iommufd.c backends/iommufd: Get rid of qemu_open_old() 2024-07-17 14:04:15 +03:00
Kconfig backends: Initial support for SPDM socket support 2024-07-22 20:15:42 -04:00
meson.build backends: Initial support for SPDM socket support 2024-07-22 20:15:42 -04:00
rng-builtin.c replay: rng-builtin support 2021-02-08 15:15:32 +01:00
rng-egd.c backends: Improve error messages when property can no longer be set 2022-10-27 07:56:56 +02:00
rng-random.c backends/rng-random: Get rid of qemu_open_old() 2024-07-17 14:04:15 +03:00
rng.c error: Drop superfluous #include "qapi/qmp/qerror.h" 2023-02-23 13:56:14 +01:00
spdm-socket.c backends: Initial support for SPDM socket support 2024-07-22 20:15:42 -04:00
trace-events backends/iommufd: Make iommufd_backend_*() return bool 2024-05-16 16:59:20 +02:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
vhost-user.c backends/vhost-user: remove the ioeventfd check 2023-03-02 03:10:47 -05:00