EnclaveGetAttestationReport 関数 (winenclaveapi.h)

現在のエンクレーブを記述し、エンクレーブの種類を担当する機関によって署名されたエンクレーブ構成証明レポートを取得します。

構文

HRESULT EnclaveGetAttestationReport(
  [in, optional] const UINT8 [ENCLAVE_REPORT_DATA_LENGTH] EnclaveData,
  [out]          PVOID                                    Report,
  [in]           UINT32                                   BufferSize,
  [out]          UINT32                                   *OutputSize
);

パラメーター

[in, optional] EnclaveData

エンクレーブが署名されたレポートに挿入するデータの 64 バイト バッファーへのポインター。 たとえば、このバッファーには、証明書利用者が提供した 256 ビットの nonce、エンクレーブが伝達する必要がある追加データの SHA-256 ハッシュ (エンクレーブが所有する秘密キーに対応する公開キーなど) を含めることができます。 このパラメーターが の場合、 NULLレポートの対応するフィールドにゼロが入力されます。

[out] Report

レポートを配置するバッファーへのポインター。 このレポートは、エンクレーブのアドレス範囲内またはホスト プロセスのアドレス空間内に格納できます。 出力に必要なバッファーのサイズのみを計算し、レポート自体は計算しないことを示すには、 を指定 NULL します。

[in] BufferSize

Report パラメーターが指すバッファーのサイズ。 Report が の場合、BufferSizeNULL0 である必要があります。 Report が でないNULL場合、レポートのサイズがこの値より大きい場合は、エラーが返されます。

[out] OutputSize

レポートのサイズを受け取る変数へのポインター。

戻り値

この関数が成功すると、 S_OKが返されます。 そうでない場合は、HRESULT エラー コードを返します。

注釈

EnclaveGetAttestationReport は、エンクレーブ内から呼び出す必要があります。

EnclaveGetAttestationReport は、 ENCLAVE_TYPE_SGX型のエンクレーブでは現在サポートされていません。 VBS エンクレーブの場合、 EnclaveGetAttestationReport が取得するレポートは、VBS 固有のキーを使用して署名されます。

エンクレーブ構成証明レポートには、エンクレーブに読み込まれるすべてのコードの ID と、エンクレーブがデバッガー アクセスがアクティブな状態で実行されているかどうかなど、エンクレーブの実行方法を制御するポリシーが含まれます。 レポートには、キー交換プロトコルで使用するためにエンクレーブによって生成された少量の情報も含まれています。

EnclaveGetAttestationReport によって生成されるレポートは、次の項目で構成されます。

エンクレーブ構成証明レポートは、特定のコードがエンクレーブで実行されていることを証明します。 検証エンティティが VBS をオンにしてホスト システムが実行されていることを証明する場合、そのエンティティはその証明をエンクレーブ構成証明レポートと組み合わせて使用して、特定のコードが設定された特定のエンクレーブが読み込まれたことを確認できます。

要件

   
サポートされている最小のクライアント Windows 10バージョン 1709 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2016 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winenclaveapi.h
Library Vertdll.lib
[DLL] Vertdll.dll

こちらもご覧ください

エンクレーブ関数

EnclaveVerifyAttestationReport

VBS_ENCLAVE_REPORT

VBS_ENCLAVE_REPORT_PKG_HEADER

VBS_ENCLAVE_REPORT_VARDATA_HEADER

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