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
);パラメーター
| フィールド | 型 | 説明 |
|---|---|---|
| pContentEncryptInfo | CMSG_CONTENT_ENCRYPT_INFO* | コンテンツ暗号化キーを格納する CMSG_CONTENT_ENCRYPT_INFO 構造体へのポインター。 |
| pKeyTransEncodeInfo | CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO* | コンテンツ暗号化キーの暗号化に使用する受信者の公開キーを指定する CMSG_KEY_TRANS_RECIPIENT_ENCODE_INFO 構造体へのポインター。 |
| pKeyTransEncryptInfo | CMSG_KEY_TRANS_ENCRYPT_INFO* | 暗号化されたコンテンツ暗号化キーを格納する CMSG_KEY_TRANS_ENCRYPT_INFO 構造体へのポインター。 |
| dwFlags | DWORD | この値は使用されません。ゼロに設定してください。 |
| pvReserved | void* | この値は予約されています。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 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)