Funzione EnclaveSealData (winenclaveapi.h)

Genera un oggetto binario di grandi dimensioni crittografato (BLOB) da dati non crittografati.

Sintassi

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
);

Parametri

[in] DataToEncrypt

Puntatore ai dati che si desidera bloccare. Questi dati possono essere archiviati all'interno dell'intervallo di indirizzi dell'enclave o all'interno dell'intervallo di indirizzi del processo host.

[in] DataToEncryptSize

Dimensioni dei dati che si desidera bloccare, in byte.

[in] IdentityPolicy

Valore che specifica il modo in cui un'altra enclave deve essere correlata all'enclave che chiama EnclaveSealData per l'enclave per annullare i dati.

[in] RuntimePolicy

Valore che indica se un enclave eseguito con il debug attivato è consentito annullare la chiamata ai dati di enclaveSealData .

Valore Significato
ENCLAVE_RUNTIME_POLICY_ALLOW_FULL_DEBUG
1
Se specificato, indica che un enclave in esecuzione con debug attivato è consentito annullare i dati. Se non specificato, indica che un enclave in esecuzione con il debug attivato non è consentito annullare i dati. Questo flag viene incluso automaticamente se l'enclave chiamante è in esecuzione con il debug attivato.
ENCLAVE_RUNTIME_POLICY_ALLOW_DYNAMIC_DEBUG
2
Se specificato, indica che un enclave eseguito con debug dinamico attivato è consentito annullare i dati. Se non specificato, indica che un enclave in esecuzione con debug dinamico attivato non è consentito annullare i dati. Questo flag viene incluso automaticamente se l'enclave chiamante è in esecuzione con debug dinamico attivato.

[out] ProtectedBlob

Puntatore a un buffer in cui devono essere inseriti i dati bloccati. Questi dati possono essere archiviati all'interno dell'intervallo di indirizzi dell'enclave o all'interno dello spazio indirizzi del processo host. Se questo parametro è NULL, viene calcolata solo la dimensione del BLOB protetto.

[in] BufferSize

Puntatore a una variabile che contiene le dimensioni del buffer a cui punta il parametro ProtectedBlob . Se ProtectedBlob è NULL, questo valore deve essere zero. Se ProtectedBlob non NULLè e se le dimensioni dei dati crittografati sono maggiori di questo valore, si verifica un errore.

[out] ProtectedBlobSize

Puntatore a una variabile che riceve le dimensioni effettive del BLOB crittografato.

Valore restituito

Se questa funzione ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .

Commenti

EnclaveSealData deve essere chiamato dall'interno di un enclave ed è supportato solo all'interno di enclave con il tipo di enclave ENCLAVE_TYPE_VBS .

Requisiti

Requisito Valore
Client minimo supportato Windows 10 versione 1709 [solo app desktop]
Server minimo supportato Windows Server 2016 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winenclaveapi.h
Libreria Vertdll.lib
DLL Vertdll.dll

Vedi anche

Funzioni enclave

ENCLAVE_SEALING_IDENTITY_POLICY

EnclaveUnsealData

API Vertdll disponibili nelle enclave VBS