Share via


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 NULLfor 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_KEY
1
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

Confira também

Funções de enclave

ENCLAVE_SEALING_IDENTITY_POLICY

EnclaveSealData

APIs Vertdll disponíveis em enclaves de VBS