Função EnclaveUnsealData (winenclaveapi.h)
Descriptografa um objeto binário grande criptografado (blob).
Sintaxe
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
Um ponteiro para os dados selados a serem desmarcados. Esses dados podem ser armazenados dentro do intervalo de endereços do enclave ou dentro do espaço de endereço do processo de host
[in] ProtectedBlobSize
O tamanho dos dados selados a serem desmarcados, em bytes.
[out] DecryptedData
Um ponteiro para um buffer em que os dados não criptografados devem ser colocados. Esses dados podem ser armazenados dentro do intervalo de endereços do enclave ou no espaço de endereço do processo de host. Se esse parâmetro for NULL
, somente o tamanho dos dados descriptografados será calculado.
[in] BufferSize
O tamanho do buffer para o qual o parâmetro DecryptedData aponta, em bytes. Se DecryptedData for NULL
, BufferSize deverá ser zero. Se DecryptedData não NULL
for e se o tamanho dos dados descriptografados for maior que esse valor, um erro será retornado.
[out] DecryptedDataSize
Um ponteiro para uma variável que recebe o tamanho real dos dados descriptografados, em bytes.
[out, optional] SealingIdentity
Um ponteiro opcional para um buffer que deve ser preenchido com a identidade do enclave que selou os dados. Se esse ponteiro for NULL
, a identidade do enclave de vedação não será retornada.
[out, optional] UnsealingFlags
Um ponteiro opcional para uma variável que recebe zero ou mais dos sinalizadores a seguir que descrevem o objeto binário grande criptografado.
Valor | Significado |
---|---|
ENCLAVE_UNSEAL_FLAG_STALE_KEY1 |
Os dados foram criptografados com uma chave obsoleta. As chaves de vedação são giradas quando necessário para segurança e o sistema só pode manter um número fixo de chaves conhecidas recentemente. Um enclave que determina que os dados foram criptografados com uma chave obsoleta deve criptografar novamente os dados com uma chave atual para minimizar as chances de que a chave usada para criptografar os dados não seja mais mantida na lista de chaves. |
Retornar valor
Se essa função for bem-sucedida, ela retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.
Comentários
O enclave que chama EnclaveUnsealData deve atender aos critérios que correspondem ao valor do ENCLAVE_SEALING_IDENTITY_POLICY especificado pelo enclave que selou os dados chamando EnclaveSealData.
EnclaveUnsealData deve ser chamado de dentro de um enclave e só tem suporte em enclaves que têm o tipo de enclave ENCLAVE_TYPE_VBS .
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 10, versão 1709 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2016 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | winenclaveapi.h |
Biblioteca | Vertdll.lib |
DLL | Vertdll.dll |