ホーム › Security.Cryptography.Certificates › ICertificateAttestationChallenge
ICertificateAttestationChallenge
COMIDispatch (デュアル)✅ IDispatch を実装(デュアルインターフェース)。HSP では
comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
アプリケーションが、サーバーから受信したキー構成証明のチャレンジを復号できるようにします。
解説(Remarks)
チャレンジの復号に成功した場合、構成証明済みのエンドエンティティ証明書を発行できるように、復号したシークレットをサーバーへ送り返す必要があります。
メソッド 3
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
vtbl 7 HRESULT Initialize(EncodingType Encoding, LPWSTR strPendingFullCmcResponseWithChallenge)
CA から返された完全な Certificate Management over CMS (CMC) 応答を使用して初期化します。
| Encoding | EncodingType | in | 応答に適用される Unicode エンコーディングの種類を指定する EncodingType 列挙値です。既定値は XCN_CRYPT_STRING_BASE64 です。 |
| strPendingFullCmcResponseWithChallenge | LPWSTR | in | CA からの保留中の CMC 応答です。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
CA は保留中の CMC 応答を返しているはずです。CMC 応答の内容にはチャレンジが含まれている必要があります。CMC 応答は 1 つだけでなければならず、保留中の情報を含んでいる必要があります。
vtbl 8 HRESULT DecryptChallenge(EncodingType Encoding, LPWSTR* pstrEnvelopedPkcs7ReencryptedToCA)
Certificate Management over CMS (CMC) 応答からチャレンジを復号し、CA へ送信するために再暗号化した応答を作成します。
| Encoding | EncodingType | in | 構成証明チャレンジに適用される Unicode エンコーディングの種類を指定する EncodingType 列挙値です。既定値は XCN_CRYPT_STRING_BASE64 です。 |
| pstrEnvelopedPkcs7ReencryptedToCA | LPWSTR* | out | CMC 応答から復号され、CA 向けに再暗号化されたチャレンジです。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Certificate Management over CMS (CMC) 応答から要求 ID を取得します。
| pstrRequestID | LPWSTR* | out | チャレンジに関連付けられた要求 ID を文字列として受け取るポインタである。 |
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_ICertificateAttestationChallenge "{6F175A7C-4A3A-40AE-9DBA-592FD6BBF9B8}" #usecom global ICertificateAttestationChallenge IID_ICertificateAttestationChallenge "{}" #comfunc global ICertificateAttestationChallenge_Initialize 7 int,wstr #comfunc global ICertificateAttestationChallenge_DecryptChallenge 8 int,var #comfunc global ICertificateAttestationChallenge_get_RequestID 9 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_ICertificateAttestationChallenge "{6F175A7C-4A3A-40AE-9DBA-592FD6BBF9B8}" #usecom global ICertificateAttestationChallenge IID_ICertificateAttestationChallenge "{}" #comfunc global ICertificateAttestationChallenge_Initialize 7 int,wstr #comfunc global ICertificateAttestationChallenge_DecryptChallenge 8 int,sptr #comfunc global ICertificateAttestationChallenge_get_RequestID 9 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。