EnclaveSealData 関数 (winenclaveapi.h)
暗号化されていないデータから暗号化されたバイナリ ラージ オブジェクト (BLOB) を生成します。
構文
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
);
パラメーター
[in] DataToEncrypt
シールするデータへのポインター。 このデータは、エンクレーブのアドレス範囲内またはホスト プロセスのアドレス範囲内に格納できます。
[in] DataToEncryptSize
シールするデータのサイズ (バイト単位)。
[in] IdentityPolicy
EnclaveSealData を呼び出してエンクレーブを呼び出してデータのシールを解除するエンクレーブに別のエンクレーブを関連付ける方法を示す 値。
[in] RuntimePolicy
デバッグを有効にして実行されるエンクレーブが、この呼び出しで EnclaveSealData シールのデータのシールを解除できるかどうかを示す 値です。
値 | 意味 |
---|---|
ENCLAVE_RUNTIME_POLICY_ALLOW_FULL_DEBUG1 |
を指定すると、デバッグを有効にして実行されるエンクレーブがデータのシール解除を許可されることを示します。 指定しない場合は、デバッグを有効にして実行されるエンクレーブがデータのシール解除を許可されていないことを示します。 このフラグは、呼び出し元のエンクレーブがデバッグを有効にして実行されている場合に自動的に含まれます。 |
ENCLAVE_RUNTIME_POLICY_ALLOW_DYNAMIC_DEBUG2 |
を指定すると、動的デバッグを有効にして実行されるエンクレーブがデータのシール解除を許可されることを示します。 指定しない場合は、動的デバッグを有効にして実行されるエンクレーブがデータのシール解除を許可されていないことを示します。 呼び出し元のエンクレーブが動的デバッグを有効にして実行されている場合、このフラグは自動的に含まれます。 |
[out] ProtectedBlob
シールされたデータを配置する必要があるバッファーへのポインター。 このデータは、エンクレーブのアドレス範囲内またはホスト プロセスのアドレス空間内に格納できます。 このパラメーターが NULL の場合、保護された BLOB のサイズのみが計算されます。
[in] BufferSize
ProtectedBlob パラメーターが指すバッファーのサイズを保持する変数へのポインター。 ProtectedBlob が の場合、この値は NULL
0 である必要があります。 ProtectedBlob が でないNULL
場合、暗号化されたデータのサイズがこの値より大きい場合は、エラーが発生します。
[out] ProtectedBlobSize
暗号化された BLOB の実際のサイズを受け取る変数へのポインター。
戻り値
この関数が成功すると、 S_OKが返されます。 そうでない場合は、HRESULT エラー コードを返します。
注釈
EnclaveSealData はエンクレーブ内から呼び出す必要があり、 ENCLAVE_TYPE_VBS エンクレーブ型のエンクレーブ内でのみサポートされます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 10、バージョン 1709 [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2016 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winenclaveapi.h |
Library | Vertdll.lib |
[DLL] | Vertdll.dll |