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_DEBUG1 |
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_DEBUG2 |
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 NULL
for 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 |