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

PFN_CMSG_EXPORT_KEY_TRANS

コールバック

シグネチャ

BOOL PFN_CMSG_EXPORT_KEY_TRANS(
    CMSG_CONTENT_ENCRYPT_INFO* pContentEncryptInfo,
    CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO* pKeyTransEncodeInfo,
    CMSG_KEY_TRANS_ENCRYPT_INFO* pKeyTransEncryptInfo,
    DWORD dwFlags,
    void* pvReserved
);

パラメーター

フィールド型説明
pContentEncryptInfoCMSG_CONTENT_ENCRYPT_INFO*コンテンツ暗号化キーを格納する CMSG_CONTENT_ENCRYPT_INFO 構造体へのポインター。
pKeyTransEncodeInfoCMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO*コンテンツ暗号化キーの暗号化に使用する受信者の公開キーを指定する CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO 構造体へのポインター。
pKeyTransEncryptInfoCMSG_KEY_TRANS_ENCRYPT_INFO*暗号化されたコンテンツ暗号化キーを格納する CMSG_KEY_TRANS_ENCRYPT_INFO 構造体へのポインター。
dwFlagsDWORDこの値は使用されません。ゼロに設定してください。
pvReservedvoid*この値は予約されています。NULL に設定してください。

公式ドキュメント

PFN_CMSG_EXPORT_KEY_TRANS コールバック関数は、エンベロープメッセージの鍵トランスポート受信者に対して、コンテンツ暗号化キーを暗号化してエクスポートします。PFN_CMSG_EXPORT_KEY_TRANS は、CryptoAPI のオブジェクト識別子 (OID) を使用してインストールできます。この関数は、dwMsgType パラメーターが CMSG_ENVELOPED に設定されている場合に、CryptMsgOpenToEncode 関数から呼び出されます。

戻り値

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

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

解説(Remarks)

PFN_CMSG_EXPORT_KEY_TRANS 関数は、pKeyTransEncryptInfo パラメーターが指す CMSG_KEY_TRANS_ENCRYPT_INFO 構造体の EncryptedKey メンバーを更新する必要があります。また、暗号化されたキーのメモリ割り当てを管理するために、pContentEncryptInfo パラメーターが指す CMSG_CONTENT_ENCRYPT_INFO 構造体の pfnAlloc メンバーと pfnFree メンバーを使用する必要があります。

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

CAPI1 キー用と Cryptography API: Next Generation (CNG) キー用に、それぞれ異なるコールバック関数を定義する必要があります。どちらの関数もシグネチャは同じですが、使用する OID が異なります。どちらの関数が呼び出されるかは、pContentEncryptInfo パラメーターが指す CMSG_CONTENT_ENCRYPT_INFO 構造体の fCNG メンバーの値によって決まります。次の表に、コールバック関数と fCNG メンバーの値との対応を示します。

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