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_DEBUG
1
を指定すると、デバッグを有効にして実行されるエンクレーブがデータのシール解除を許可されることを示します。 指定しない場合は、デバッグを有効にして実行されるエンクレーブがデータのシール解除を許可されていないことを示します。 このフラグは、呼び出し元のエンクレーブがデバッグを有効にして実行されている場合に自動的に含まれます。
ENCLAVE_RUNTIME_POLICY_ALLOW_DYNAMIC_DEBUG
2
を指定すると、動的デバッグを有効にして実行されるエンクレーブがデータのシール解除を許可されることを示します。 指定しない場合は、動的デバッグを有効にして実行されるエンクレーブがデータのシール解除を許可されていないことを示します。 呼び出し元のエンクレーブが動的デバッグを有効にして実行されている場合、このフラグは自動的に含まれます。

[out] ProtectedBlob

シールされたデータを配置する必要があるバッファーへのポインター。 このデータは、エンクレーブのアドレス範囲内またはホスト プロセスのアドレス空間内に格納できます。 このパラメーターが NULL の場合、保護された BLOB のサイズのみが計算されます。

[in] BufferSize

ProtectedBlob パラメーターが指すバッファーのサイズを保持する変数へのポインター。 ProtectedBlob が の場合、この値は NULL0 である必要があります。 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

こちらもご覧ください

エンクレーブ関数

ENCLAVE_SEALING_IDENTITY_POLICY

EnclaveUnsealData

VBS エンクレーブで使用できる Vertdll API