Función EnclaveUnsealData (winenclaveapi.h)

Descifra un objeto binario grande cifrado (blob).

Sintaxis

HRESULT EnclaveUnsealData(
  [in]            const VOID       *ProtectedBlob,
  [in]            UINT32           ProtectedBlobSize,
  [out]           PVOID            DecryptedData,
  [in]            UINT32           BufferSize,
  [out]           UINT32           *DecryptedDataSize,
  [out, optional] ENCLAVE_IDENTITY *SealingIdentity,
  [out, optional] UINT32           *UnsealingFlags
);

Parámetros

[in] ProtectedBlob

Puntero a los datos sellados que se van a anular. Estos datos se pueden almacenar dentro del intervalo de direcciones del enclave o dentro del espacio de direcciones del proceso de host.

[in] ProtectedBlobSize

Tamaño de los datos sellados que se van a anular, en bytes.

[out] DecryptedData

Puntero a un búfer donde se deben colocar los datos sin cifrar. 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 de los datos descifrados.

[in] BufferSize

Tamaño del búfer al que apunta el parámetro DecryptedData , en bytes. Si DecryptedData es NULL, BufferSize debe ser cero. Si DecryptedData no NULLes , y si el tamaño de los datos descifrados es mayor que este valor, se devuelve un error.

[out] DecryptedDataSize

Puntero a una variable que recibe el tamaño real de los datos descifrados, en bytes.

[out, optional] SealingIdentity

Puntero opcional a un búfer que se debe rellenar con la identidad del enclave que selló los datos. Si este puntero es NULL, no se devuelve la identidad del enclave de sellado.

[out, optional] UnsealingFlags

Puntero opcional a una variable que recibe cero o más de las marcas siguientes que describen el objeto binario grande cifrado.

Valor Significado
ENCLAVE_UNSEAL_FLAG_STALE_KEY
1
Los datos se cifraron con una clave obsoleta. Las claves de sellado se rotan cuando es necesario para la seguridad y el sistema solo puede mantener un número fijo de claves conocidas recientemente. Un enclave que determina que los datos se cifraron con una clave obsoleta deben volver a cifrar los datos con una clave actual para minimizar las posibilidades de que la clave usada para cifrar los datos ya no se mantenga en la lista de claves.

Valor devuelto

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

Comentarios

El enclave que llama a EnclaveUnsealData debe cumplir los criterios que corresponden al valor del ENCLAVE_SEALING_IDENTITY_POLICY especificado por el enclave que selló los datos mediante una llamada a EnclaveSealData.

Se debe llamar a EnclaveUnsealData desde dentro de un enclave y solo se admite dentro de los enclaves que tienen 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

EnclaveSealData

API de Vertdll disponibles en enclaves de VBS