Функция 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_ENCLAVE_REPORT_PKG_HEADER
- Подписанный оператор, состоящий из следующих элементов:
- Структура VBS_ENCLAVE_REPORT
- Ноль или несколько блоков переменных данных, состоящих из следующих элементов:
- Структура VBS_ENCLAVE_REPORT_VARDATA_HEADER
- Данные, описываемые структурой VBS_ENCLAVE_REPORT_VARDATA_HEADER
- Подпись
Отчет об аттестации анклава предоставляет подтверждение того, что конкретный код выполняется с анклавом. Если проверяющая сущность также получает подтверждение того, что хост-система работает с включенным VBS, эта сущность может использовать это подтверждение вместе с отчетом об аттестации анклава, чтобы убедиться, что конкретный анклав, заполненный определенным кодом, был загружен.
Требования
Минимальная версия клиента | Windows 10, версия 1709 [только классические приложения] |
Минимальная версия сервера | Windows Server 2016 [только классические приложения] |
Целевая платформа | Windows |
Header | winenclaveapi.h |
Библиотека | Vertdll.lib |
DLL | Vertdll.dll |
См. также раздел
EnclaveVerifyAttestationReport