EnclaveUnsealData-Funktion (winenclaveapi.h)
Entschlüsselt ein verschlüsseltes binäres großes Objekt (Blob).
Syntax
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
);
Parameter
[in] ProtectedBlob
Ein Zeiger auf die versiegelten Daten, die nicht versiegelt werden sollen. Diese Daten können entweder innerhalb des Adressbereichs der Enclave oder innerhalb des Adressraums des Hostprozesses gespeichert werden.
[in] ProtectedBlobSize
Die Größe der versiegelten Daten in Bytes, die nicht versiegelt werden sollen.
[out] DecryptedData
Ein Zeiger auf einen Puffer, in dem die unverschlüsselten Daten platziert werden sollen. Diese Daten können entweder innerhalb des Adressbereichs der Enclave oder innerhalb des Adressraums des Hostprozesses gespeichert werden. Wenn dieser Parameter ist NULL
, wird nur die Größe der entschlüsselten Daten berechnet.
[in] BufferSize
Die Größe des Puffers, auf den der DecryptedData-Parameter in Bytes zeigt. Wenn DecryptedData auf festgelegt ist NULL
, muss BufferSize null sein. Wenn DecryptedData nicht NULL
ist und die Größe der entschlüsselten Daten größer als dieser Wert ist, wird ein Fehler zurückgegeben.
[out] DecryptedDataSize
Ein Zeiger auf eine Variable, die die tatsächliche Größe der entschlüsselten Daten in Bytes empfängt.
[out, optional] SealingIdentity
Ein optionaler Zeiger auf einen Puffer, der mit der Identität der Enclave gefüllt werden soll, die die Daten versiegelt. Wenn dieser Zeiger ist, wird NULL
die Identität der Dichtungsenklave nicht zurückgegeben.
[out, optional] UnsealingFlags
Ein optionaler Zeiger auf eine Variable, die null oder mehr der folgenden Flags empfängt, die das verschlüsselte binäre große Objekt beschreiben.
Wert | Bedeutung |
---|---|
ENCLAVE_UNSEAL_FLAG_STALE_KEY1 |
Die Daten wurden mit einem veralteten Schlüssel verschlüsselt. Versiegelungsschlüssel werden rotiert, wenn dies aus Sicherheitsgründen erforderlich ist, und das System kann nur eine feste Anzahl von kürzlich bekannten Schlüsseln verwalten. Eine Enclave, die bestimmt, dass Daten mit einem veralteten Schlüssel verschlüsselt wurden, sollte die Daten mit einem aktuellen Schlüssel erneut verschlüsseln, um die Wahrscheinlichkeit zu minimieren, dass der Schlüssel, der zum Verschlüsseln der Daten verwendet wird, nicht mehr in der Schlüsselliste beibehalten wird. |
Rückgabewert
Wenn diese Funktion erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.
Hinweise
Die Enclave, die EnclaveUnsealData aufruft, muss die Kriterien erfüllen, die dem Wert des ENCLAVE_SEALING_IDENTITY_POLICY entsprechen, der von der Enclave angegeben wurde, die die Daten durch Aufrufen von EnclaveSealData versiegelt hat.
EnclaveUnsealData muss innerhalb einer Enclave aufgerufen werden und wird nur in Enclaves unterstützt, die über den ENCLAVE_TYPE_VBS Enclave-Typ verfügen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 10, Version 1709 [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2016 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | winenclaveapi.h |
Bibliothek | Vertdll.lib |
DLL | Vertdll.dll |