Función EnclaveGetAttestationReport (winenclaveapi.h)

Obtiene un informe de atestación de enclave que describe el enclave actual y está firmado por la autoridad responsable del tipo del enclave.

Sintaxis

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

Parámetros

[in, optional] EnclaveData

Puntero a un búfer de 64 bytes de datos que el enclave quiere insertar en su informe firmado. Por ejemplo, este búfer podría incluir un valor nonce de 256 bits proporcionado por el usuario de confianza, seguido de un hash SHA-256 de datos adicionales que el enclave quiere transmitir, como una clave pública que corresponde a una clave privada que posee el enclave. Si este parámetro es NULL, el campo correspondiente del informe se rellena con ceros.

[out] Report

Puntero a un búfer donde se debe colocar el informe. Este informe se puede almacenar dentro del intervalo de direcciones del enclave o dentro del espacio de direcciones del proceso host. Especifique NULL para indicar que solo se debe calcular el tamaño del búfer necesario para la salida y no el propio informe.

[in] BufferSize

Tamaño del búfer al que apunta el parámetro Report . Si Report es NULL, BufferSize debe ser cero. Si Report no NULLes y si el tamaño del informe es mayor que este valor, se devuelve un error.

[out] OutputSize

Puntero a una variable que recibe el tamaño del informe.

Valor devuelto

Si esta función se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.

Comentarios

Se debe llamar a EnclaveGetAttestationReport desde dentro de un enclave.

EnclaveGetAttestationReport no se admite actualmente para enclaves con un tipo de ENCLAVE_TYPE_SGX. En el caso de los enclaves de VBS, el informe que obtiene EnclaveGetAttestationReport se firma mediante una clave específica de VBS.

El informe de atestación de enclave contiene la identidad de todo el código cargado en el enclave, así como las directivas que controlan cómo se ejecuta el enclave, como si el enclave se ejecuta con el acceso del depurador activo. El informe también incluye una pequeña cantidad de información que el enclave generado para usar en un protocolo de intercambio de claves.

El informe que genera EnclaveGetAttestationReport consta de los siguientes elementos:

El informe de atestación del enclave proporciona una prueba de que el código específico se ejecuta con un enclave. Si una entidad de validación también obtiene la prueba de que el sistema host se ejecuta con VBS activado, esa entidad puede usar esa prueba junto con el informe de atestación del enclave para comprobar que se ha cargado un enclave específico, rellenado con código específico.

Requisitos

   
Cliente mínimo compatible Windows 10, versión 1709 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2016 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winenclaveapi.h
Library Vertdll.lib
Archivo DLL Vertdll.dll

Consulte también

Funciones de enclave

EnclaveVerifyAttestationReport

VBS_ENCLAVE_REPORT

VBS_ENCLAVE_REPORT_PKG_HEADER

VBS_ENCLAVE_REPORT_VARDATA_HEADER

API de Vertdll disponibles en enclaves de VBS