PFN_CMSG_CNG_IMPORT_KEY_AGREE
コールバックシグネチャ
BOOL PFN_CMSG_CNG_IMPORT_KEY_AGREE(
CMSG_CNG_CONTENT_DECRYPT_INFO* pCNGContentDecryptInfo,
CMSG_CTRL_KEY_AGREE_DECRYPT_PARA* pKeyAgreeDecryptPara,
DWORD dwFlags,
void* pvReserved
);パラメーター
| フィールド | 型 | 説明 |
|---|---|---|
| pCNGContentDecryptInfo | CMSG_CNG_CONTENT_DECRYPT_INFO* | 復号された CEK のバイト列で更新される CMSG_CNG_CONTENT_DECRYPT_INFO 構造体へのポインターです。このパラメーターには、CEK の復号に使用するキーが格納されています。 次の pKeyTransDecryptPara パラメーターには、 復号対象の CEK バイト列が格納されています。 |
| pKeyAgreeDecryptPara | CMSG_CTRL_KEY_AGREE_DECRYPT_PARA* | CMSG_CTRL_KEY_AGREE_DECRYPT の場合に CryptMsgControl 関数へ渡されたキー合意情報を格納する CMSG_CTRL_KEY_AGREE_DECRYPT_PARA 構造体へのポインターです。 pKeyAgree メンバーの EncryptedKey メンバーには、復号対象の CEK バイト列が格納されています。 CMSG_CTRL_KEY_AGREE_DECRYPT_PARA 構造体は HCRYPTPROV の選択肢を含む場合があるため、その hNCryptKey メンバーを EncryptedKey の復号に使用してはいけません。代わりに、pCNGContentDecryptInfo パラメーターで指定された hNCryptKey メンバーを使用する必要があります。 この関数は、CMSG_CTRL_KEY_AGREE_DECRYPT_PARA 構造体のメンバーを更新してはいけません。 |
| dwFlags | DWORD | このパラメーターは予約されています。ゼロに設定してください。 |
| pvReserved | void* | このパラメーターは予約されています。NULL に設定してください。 |
公式ドキュメント
PFN_CMSG_CNG_IMPORT_KEY_AGREE コールバック関数は、キー合意 (key agreement) の受信者を対象としたコンテンツ暗号化キー (CEK) を復号します。PFN_CMSG_CNG_IMPORT_KEY_AGREE は、Cryptography API: Next Generation (CNG) の オブジェクト識別子 (OID) を使用してインストールできます。
戻り値
関数が成功した場合、戻り値は 0 以外 (TRUE) です。
関数が失敗した場合、戻り値は 0 (FALSE) です。拡張エラー情報を取得するには、GetLastError を呼び出します。
このコールバック関数がキー暗号化アルゴリズムをサポートしていない場合は、FALSE を返し、ERROR_NOT_SUPPORTED を指定して SetLastError を呼び出す必要があります。
解説(Remarks)
CryptMsgControl 関数は、dwCtrlType パラメーターで指定された次の操作に対してこの関数を呼び出します。
CMSG_CTRL_KEY_AGREE_DECRYPT このコールバック関数を配置するには、OID サポート関数を使用できます。Wincrypt.h では、この目的のために次の定数が定義されています。
| 定数 | 定義 |
|---|---|
| CMSG_OID_CNG_IMPORT_KEY_AGREE_FUNC | "CryptMsgDllCNGImportKeyAgree" |
例
OID でインストール可能なコールバック関数を配置する例については、CryptoAPI 機能の拡張を参照してください。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)