Поделиться через


Функция EnclaveGetAttestationReport (winenclaveapi.h)

Возвращает отчет об аттестации анклава, описывающий текущий анклав и подписанный органом, отвечающим за тип анклава.

Синтаксис

HRESULT EnclaveGetAttestationReport(
  [in, optional] const UINT8 [ENCLAVE_REPORT_DATA_LENGTH] EnclaveData,
  [out]          PVOID                                    Report,
  [in]           UINT32                                   BufferSize,
  [out]          UINT32                                   *OutputSize
);

Параметры

[in, optional] EnclaveData

Указатель на 64-байтовый буфер данных, который анклав хочет вставить в подписанный отчет. Например, этот буфер может включать 256-битовое значение nonce, предоставленное проверяющей стороной, а затем хэш SHA-256 дополнительных данных, которые анклав хочет передать, например открытый ключ, соответствующий закрытому ключу, которому принадлежит анклав. Если этот параметр имеет значение NULL, соответствующее поле отчета заполняется нулями.

[out] Report

Указатель на буфер, в котором должен размещаться отчет. Этот отчет может храниться либо в диапазоне адресов анклава, либо в адресном пространстве хост-процесса. Укажите NULL , чтобы указать, что должен вычисляться только размер буфера, необходимого для выходных данных, а не сам отчет.

[in] BufferSize

Размер буфера, на который указывает параметр Report . Если параметр Report имеет значение NULL, bufferSize должен быть равен нулю. Если значение Report не NULLравно , а размер отчета больше этого значения, возвращается ошибка.

[out] OutputSize

Указатель на переменную, получающую размер отчета.

Возвращаемое значение

Если эта функция выполняется успешно, она возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

EnclaveGetAttestationReport должен вызываться из анклава.

EnclaveGetAttestationReport в настоящее время не поддерживается для анклавов с типом ENCLAVE_TYPE_SGX. Для анклавов VBS отчет, который получает EnclaveGetAttestationReport , подписывается с помощью ключа VBS.

Отчет об аттестации анклава содержит удостоверение всего кода, загруженного в анклав, а также политики, управляющие тем, как выполняется анклав, например, работает ли анклав с активным доступом отладчика. Отчет также содержит небольшой объем информации, созданной анклавом для использования в протоколе обмена ключами.

Отчет, создаваемый EnclaveGetAttestationReport , состоит из следующих элементов:

Отчет об аттестации анклава предоставляет подтверждение того, что конкретный код выполняется с анклавом. Если проверяющая сущность также получает подтверждение того, что хост-система работает с включенным VBS, эта сущность может использовать это подтверждение вместе с отчетом об аттестации анклава, чтобы убедиться, что конкретный анклав, заполненный определенным кодом, был загружен.

Требования

   
Минимальная версия клиента Windows 10, версия 1709 [только классические приложения]
Минимальная версия сервера Windows Server 2016 [только классические приложения]
Целевая платформа Windows
Header winenclaveapi.h
Библиотека Vertdll.lib
DLL Vertdll.dll

См. также раздел

Функции анклава

EnclaveVerifyAttestationReport

VBS_ENCLAVE_REPORT

VBS_ENCLAVE_REPORT_PKG_HEADER

VBS_ENCLAVE_REPORT_VARDATA_HEADER

API-интерфейсы Vertdll, доступные в анклавах VBS