Share via


Função EnclaveSealData (winenclaveapi.h)

Gera um objeto binário grande criptografado (blob) de dados não criptografados.

Sintaxe

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

Um ponteiro para os dados que você deseja selar. Esses dados podem ser armazenados dentro do intervalo de endereços do enclave ou dentro do intervalo de endereços do processo de host.

[in] DataToEncryptSize

O tamanho dos dados que você deseja selar, em bytes.

[in] IdentityPolicy

Um valor que especifica como outro enclave deve estar relacionado ao enclave que chama EnclaveSealData para o enclave para desmarcada os dados.

[in] RuntimePolicy

Um valor que indica se um enclave executado com a depuração ativada tem permissão para desmarcada os dados que essa chamada para enclaveSealData sela.

Valor Significado
ENCLAVE_RUNTIME_POLICY_ALLOW_FULL_DEBUG
1
Se especificado, indica que um enclave que é executado com a depuração ativada tem permissão para desmarcada os dados. Se não for especificado, indica que um enclave que é executado com a depuração ativada não tem permissão para desmarcada os dados. Esse sinalizador será incluído automaticamente se o enclave de chamada estiver em execução com a depuração ativada.
ENCLAVE_RUNTIME_POLICY_ALLOW_DYNAMIC_DEBUG
2
Se especificado, indica que um enclave executado com depuração dinâmica ativada tem permissão para desmarcada os dados. Se não for especificado, indica que um enclave executado com depuração dinâmica ativada não tem permissão para desmarcada os dados. Esse sinalizador será incluído automaticamente se o enclave de chamada estiver em execução com a depuração dinâmica ativada.

[out] ProtectedBlob

Um ponteiro para um buffer em que os dados selados 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 do blob protegido será calculado.

[in] BufferSize

Um ponteiro para uma variável que contém o tamanho do buffer ao qual o parâmetro ProtectedBlob aponta. Se ProtectedBlob for NULL, esse valor deverá ser zero. Se ProtectedBlob não NULLfor e se o tamanho dos dados criptografados for maior que esse valor, ocorrerá um erro.

[out] ProtectedBlobSize

Um ponteiro para uma variável que recebe o tamanho real do blob criptografado.

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

EnclaveSealData 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

EnclaveUnsealData

APIs Vertdll disponíveis em enclaves de VBS