EnclaveSealData-Funktion (winenclaveapi.h)
Generiert ein verschlüsseltes binäres großes Objekt (Blob) aus unverschlüsselten Daten.
Syntax
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
);
Parameter
[in] DataToEncrypt
Ein Zeiger auf die Daten, die Sie versiegeln möchten. Diese Daten können entweder innerhalb des Adressbereichs der Enclave oder innerhalb des Adressbereichs des Hostprozesses gespeichert werden.
[in] DataToEncryptSize
Die Größe der Daten, die Sie versiegeln möchten, in Bytes.
[in] IdentityPolicy
Ein -Wert, der angibt, wie eine andere Enclave mit der Enclave verknüpft werden muss, die EnclaveSealData für die Enclave aufruft, um die Daten zu entsiegeln.
[in] RuntimePolicy
Ein -Wert, der angibt, ob eine Enclave, die mit aktiviertem Debuggen ausgeführt wird, die Daten aus diesem Aufruf von EnclaveSealData-Siegeln entsiegeln darf.
Wert | Bedeutung |
---|---|
ENCLAVE_RUNTIME_POLICY_ALLOW_FULL_DEBUG1 |
Wenn angegeben, gibt an, dass eine Enclave, die mit aktiviertem Debuggen ausgeführt wird, die Daten entsiegeln darf. Wenn nicht angegeben, gibt an, dass eine Enclave, die mit aktiviertem Debuggen ausgeführt wird, die Daten nicht entsiegeln darf. Dieses Flag wird automatisch eingefügt, wenn die aufrufende Enclave mit aktiviertem Debuggen ausgeführt wird. |
ENCLAVE_RUNTIME_POLICY_ALLOW_DYNAMIC_DEBUG2 |
Wenn angegeben, gibt an, dass eine Enclave, die mit aktiviertem dynamischem Debuggen ausgeführt wird, die Daten entsiegeln kann. Wenn nicht angegeben, gibt an, dass eine Enclave, die mit aktiviertem dynamischem Debuggen ausgeführt wird, die Daten nicht entsiegeln darf. Dieses Flag wird automatisch eingeschlossen, wenn die aufrufende Enclave mit aktiviertem dynamischem Debuggen ausgeführt wird. |
[out] ProtectedBlob
Ein Zeiger auf einen Puffer, in dem die versiegelten 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 NULL ist, wird nur die Größe des geschützten Blobs berechnet.
[in] BufferSize
Ein Zeiger auf eine Variable, die die Größe des Puffers enthält, auf den der ProtectedBlob-Parameter verweist. Wenn ProtectedBlob auf festgelegt ist NULL
, muss dieser Wert null sein. Wenn ProtectedBlob nicht NULL
ist und die Größe der verschlüsselten Daten größer als dieser Wert ist, tritt ein Fehler auf.
[out] ProtectedBlobSize
Ein Zeiger auf eine Variable, die die tatsächliche Größe des verschlüsselten Blobs empfängt.
Rückgabewert
Wenn diese Funktion erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.
Hinweise
EnclaveSealData 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 |