Win32 API 日本語リファレンス
ホーム › Security.Cryptography › PFN_CMSG_CNG_IMPORT_KEY_TRANS

PFN_CMSG_CNG_IMPORT_KEY_TRANS

コールバック

シグネチャ

BOOL PFN_CMSG_CNG_IMPORT_KEY_TRANS(
    CMSG_CNG_CONTENT_DECRYPT_INFO* pCNGContentDecryptInfo,
    CMSG_CTRL_KEY_TRANS_DECRYPT_PARA* pKeyTransDecryptPara,
    DWORD dwFlags,
    void* pvReserved
);

パラメーター

フィールド型説明
pCNGContentDecryptInfoCMSG_CNG_CONTENT_DECRYPT_INFO*復号された CEK のバイト列で更新される CMSG_CNG_CONTENT_DECRYPT_INFO 構造体へのポインターです。このパラメーターには、CEK の復号に使用するキーが格納されます。 次の pKeyTransDecryptPara パラメーターには、復号対象の CEK バイト列が格納されます。
pKeyTransDecryptParaCMSG_CTRL_KEY_TRANS_DECRYPT_PARA*

CMSG_CTRL_DECRYPT または CMSG_CTRL_KEY_TRANS_DECRYPT の場合に CryptMsgControl 関数へ渡されたキー トランスポート情報を格納する CMSG_CTRL_KEY_TRANS_DECRYPT_PARA 構造体へのポインターです。CMSG_CTRL_DECRYPT の場合、CryptMsgControl は CMSG_CTRL_DECRYPT_PARA 構造体を CMSG_CTRL_KEY_TRANS_DECRYPT_PARA 構造体に変換します。

pKeyTrans メンバーの EncryptedKey メンバーには、復号対象の CEK バイト列が格納されています。 CMSG_CTRL_KEY_TRANS_DECRYPT_PARA 構造体は HCRYPTPROV の選択肢を含む可能性があるため、その hNCryptKey メンバーを EncryptedKey の復号に使用してはなりません。代わりに、pCNGContentDecryptInfo パラメーターで指定された hNCryptKey を使用する必要があります。

この関数は、CMSG_CTRL_KEY_TRANS_DECRYPT_PARA 構造体のメンバーを更新してはなりません。

dwFlagsDWORDこのパラメーターは予約されています。0 を設定してください。
pvReservedvoid*このパラメーターは予約されています。NULL を設定してください。

公式ドキュメント

PFN_CMSG_CNG_IMPORT_KEY_TRANS コールバック関数は、キー トランスポート受信者を対象としたコンテンツ暗号化キー (CEK) をインポートして復号します。PFN_CMSG_CNG_IMPORT_KEY_TRANS は、Cryptography API: Next Generation (CNG) の オブジェクト識別子 (OID) を使用してインストールできます。

戻り値

関数が成功した場合、戻り値は 0 以外 (TRUE) です。

関数が失敗した場合、戻り値は 0 (FALSE) です。拡張エラー情報を取得するには、GetLastError を呼び出します。

このコールバック関数がそのキー暗号化アルゴリズムをサポートしていない場合は、FALSE を返し、ERROR_NOT_SUPPORTED を指定して SetLastError を呼び出す必要があります。

解説(Remarks)

CryptMsgControl 関数は、dwCtrlType パラメーターで指定された次の操作に対してこの関数を呼び出します。

CMSG_CTRL_DECRYPT CMSG_CTRL_KEY_TRANS_DECRYPT このコールバック関数を配置するには、OID サポート関数を使用できます。Wincrypt.h では、この目的のために次の定数が定義されています。

定数 定義
CMSG_OID_CNG_IMPORT_KEY_TRANS_FUNC "CryptMsgDllCNGImportKeyTrans"

例

OID でインストール可能なコールバック関数を配置する例については、「Extending CryptoAPI Functionality」を参照してください。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)