Función EnclaveSealData (winenclaveapi.h)

Genera un objeto binario grande cifrado (blob) a partir de datos sin cifrar.

Sintaxis

HRESULT EnclaveSealData(
  [in]  const VOID                      *DataToEncrypt,
  [in]  UINT32                          DataToEncryptSize,
  [in]  ENCLAVE_SEALING_IDENTITY_POLICY IdentityPolicy,
  [in]  UINT32                          RuntimePolicy,
  [out] PVOID                           ProtectedBlob,
  [in]  UINT32                          BufferSize,
  [out] UINT32                          *ProtectedBlobSize
);

Parámetros

[in] DataToEncrypt

Puntero a los datos que desea sellar. Estos datos se pueden almacenar dentro del intervalo de direcciones del enclave o dentro del intervalo de direcciones del proceso de host.

[in] DataToEncryptSize

Tamaño de los datos que desea sellar, en bytes.

[in] IdentityPolicy

Valor que especifica cómo debe estar relacionado otro enclave con el enclave que llama a EnclaveSealData para que el enclave quite los datos.

[in] RuntimePolicy

Valor que indica si se permite que un enclave que se ejecute con la depuración activada deshazque los datos a los que se llama a los sellos EnclaveSealData .

Valor Significado
ENCLAVE_RUNTIME_POLICY_ALLOW_FULL_DEBUG
1
Si se especifica, indica que se permite que un enclave que se ejecute con la depuración activada quite los datos. Si no se especifica, indica que no se permite que un enclave que se ejecute con la depuración activada desenlacen los datos. Esta marca se incluye automáticamente si el enclave que realiza la llamada se ejecuta con la depuración activada.
ENCLAVE_RUNTIME_POLICY_ALLOW_DYNAMIC_DEBUG
2
Si se especifica, indica que un enclave que se ejecuta con la depuración dinámica activada puede anular los datos. Si no se especifica, indica que un enclave que se ejecuta con la depuración dinámica activada no puede desempacar los datos. Esta marca se incluye automáticamente si el enclave que realiza la llamada se ejecuta con la depuración dinámica activada.

[out] ProtectedBlob

Puntero a un búfer donde se deben colocar los datos sellados. Estos datos se pueden almacenar dentro del intervalo de direcciones del enclave o dentro del espacio de direcciones del proceso del host. Si este parámetro es NULL, solo se calcula el tamaño del blob protegido.

[in] BufferSize

Puntero a una variable que contiene el tamaño del búfer al que apunta el parámetro ProtectedBlob . Si ProtectedBlob es NULL, este valor debe ser cero. Si ProtectedBlob no NULLes , y si el tamaño de los datos cifrados es mayor que este valor, se produce un error.

[out] ProtectedBlobSize

Puntero a una variable que recibe el tamaño real del blob cifrado.

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 EnclaveSealData desde dentro de un enclave y solo se admite en enclaves que tengan el tipo de enclave ENCLAVE_TYPE_VBS.

Requisitos

Requisito Value
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

ENCLAVE_SEALING_IDENTITY_POLICY

EnclaveUnsealData

API de Vertdll disponibles en enclaves de VBS