Share via


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_DEBUG
1
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_DEBUG
2
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 NULList 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

Weitere Informationen

Enclave-Funktionen

ENCLAVE_SEALING_IDENTITY_POLICY

EnclaveUnsealData

In VBS-Enclaves verfügbare Vertdll-APIs