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_KEY1 |
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 |