Condividi tramite


Funzione EnclaveUnsealData (winenclaveapi.h)

Decrittografa un oggetto binario di grandi dimensioni crittografato (BLOB).

Sintassi

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

Parametri

[in] ProtectedBlob

Puntatore ai dati bloccati da annullare. Questi dati possono essere archiviati all'interno dell'intervallo di indirizzi dell'enclave o all'interno dello spazio indirizzi del processo host

[in] ProtectedBlobSize

Dimensioni dei dati bloccati da annullare, in byte.

[out] DecryptedData

Puntatore a un buffer in cui devono essere inseriti i dati non crittografati. 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 dei dati decrittografati.

[in] BufferSize

Dimensione del buffer a cui punta il parametro DecryptedData , in byte. Se DecryptedData è NULL, BufferSize deve essere zero. Se decryptedData non NULLè e se le dimensioni dei dati decrittografati sono maggiori di questo valore, viene restituito un errore.

[out] DecryptedDataSize

Puntatore a una variabile che riceve le dimensioni effettive dei dati decrittografati, in byte.

[out, optional] SealingIdentity

Puntatore facoltativo a un buffer che deve essere riempito con l'identità dell'enclave che ha bloccato i dati. Se questo puntatore è NULL, l'identità dell'enclave di chiusura non viene restituita.

[out, optional] UnsealingFlags

Puntatore facoltativo a una variabile che riceve zero o più flag seguenti che descrivono l'oggetto binario crittografato di grandi dimensioni.

Valore Significato
ENCLAVE_UNSEAL_FLAG_STALE_KEY
1
I dati sono stati crittografati con una chiave non aggiornata. I tasti di chiusura vengono ruotati quando necessario per la sicurezza e il sistema può mantenere solo un numero fisso di chiavi note di recente. Un enclave che determina che i dati sono stati crittografati con una chiave non aggiornata devono crittografare nuovamente i dati con una chiave corrente per ridurre al minimo le probabilità che la chiave utilizzata per crittografare i dati non sia più gestita nell'elenco delle chiavi.

Valore restituito

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

Commenti

L'enclave che chiama EnclaveUnsealData deve soddisfare i criteri corrispondenti al valore del ENCLAVE_SEALING_IDENTITY_POLICY specificato dall'enclave che ha bloccato i dati chiamando EnclaveSealData.

EnclaveUnsealData 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

EnclaveSealData

API Vertdll disponibili nelle enclave VBS