20 constexpr auto DEVICE =
"/dev/sev-guest";
81 static inline bool is_sev_snp()
83 return access(
DEVICE, W_OK) == 0;
94 if (report_data.
data.size() <= snp_attestation_report_data_size)
101 throw std::logic_error(
102 "User-defined report data is larger than available space");
105 int fd = open(
DEVICE, O_RDWR | O_CLOEXEC);
108 throw std::logic_error(fmt::format(
"Failed to open \"{}\"",
DEVICE));
116 .resp_wrapper = &resp_wrapper,
124 "Exit info, fw_error: {} vmm_error: {}",
127 throw std::logic_error(
128 "Failed to issue ioctl SEV_SNP_GUEST_MSG_REPORT");
139 auto quote_bytes =
reinterpret_cast<uint8_t*
>(&resp_wrapper.
resp.
report);
Definition attestation_sev_snp.h:289
Definition snp_ioctl6.h:87
Attestation(const PlatformAttestationReportData &report_data)
Definition snp_ioctl6.h:92
std::vector< uint8_t > get_raw() override
Definition snp_ioctl6.h:137
const snp::Attestation & get() const override
Definition snp_ioctl6.h:132
#define CCF_APP_FAIL
Definition logger.h:400
Definition snp_ioctl6.h:19
constexpr char SEV_GUEST_IOC_TYPE
Definition snp_ioctl6.h:77
constexpr int SEV_SNP_GUEST_MSG_REPORT
Definition snp_ioctl6.h:78
constexpr auto DEVICE
Definition snp_ioctl6.h:20
Definition attestation_sev_snp.h:164
Definition snp_ioctl6.h:24
uint8_t report_data[snp_attestation_report_data_size]
Definition snp_ioctl6.h:25
uint8_t reserved[28]
Definition snp_ioctl6.h:27
uint32_t vmpl
Definition snp_ioctl6.h:26
Definition snp_ioctl6.h:44
uint8_t padding[4000 - sizeof(struct AttestationResp)]
Definition snp_ioctl6.h:46
struct AttestationResp resp
Definition snp_ioctl6.h:45
Definition snp_ioctl6.h:33
uint32_t status
Definition snp_ioctl6.h:34
uint32_t report_size
Definition snp_ioctl6.h:35
uint8_t padding[64]
Definition snp_ioctl6.h:38
struct Attestation report
Definition snp_ioctl6.h:37
uint8_t reserved[0x20 - 0x8]
Definition snp_ioctl6.h:36
Definition snp_ioctl6.h:51
uint32_t fw
Definition snp_ioctl6.h:52
uint32_t vmm
Definition snp_ioctl6.h:53
Definition snp_ioctl6.h:64
AttestationReq * req_data
Definition snp_ioctl6.h:69
ExitInfo exit_info
Definition snp_ioctl6.h:74
uint32_t msg_version
Definition snp_ioctl6.h:66
AttestationRespWrapper * resp_wrapper
Definition snp_ioctl6.h:70
Definition snp_ioctl6.h:57
ExitInfoErrors errors
Definition snp_ioctl6.h:59
uint64_t whole
Definition snp_ioctl6.h:58