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 NULL
es , 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_KEY1 |
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 |