PFN_CMSG_EXPORT_KEY_AGREE コールバック関数 (wincrypt.h)
PFN_CMSG_EXPORT_KEY_AGREEコールバック関数は、エンベロープされたメッセージのキー アグリーメント受信者のコンテンツ暗号化キーを暗号化してエクスポートします。 PFN_CMSG_EXPORT_KEY_AGREE は、 CryptoAPIオブジェクト識別子 (OID) を使用してインストールできます。 この関数は、dwMsgType パラメーターが CMSG_ENVELOPED に設定されている場合に、CryptMsgOpenToEncode 関数によって呼び出されます。
構文
PFN_CMSG_EXPORT_KEY_AGREE PfnCmsgExportKeyAgree;
BOOL PfnCmsgExportKeyAgree(
[in] PCMSG_CONTENT_ENCRYPT_INFO pContentEncryptInfo,
[in] PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO pKeyAgreeEncodeInfo,
[in, out] PCMSG_KEY_AGREE_ENCRYPT_INFO pKeyAgreeEncryptInfo,
[in] DWORD dwFlags,
void *pvReserved
)
{...}
パラメーター
[in] pContentEncryptInfo
コンテンツ暗号化キーを含む CMSG_CONTENT_ENCRYPT_INFO 構造体へのポインター。
[in] pKeyAgreeEncodeInfo
コンテンツ暗号化キーの暗号化に使用するキーを指定する CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO 構造体へのポインター。
[in, out] pKeyAgreeEncryptInfo
暗号化されたコンテンツ暗号化キーを含む CMSG_KEY_AGREE_ENCRYPT_INFO 構造体へのポインター。
[in] dwFlags
この値は使用されません。 0 に設定します。
pvReserved
このパラメーターは予約されており、NULL である必要があります。
戻り値
関数が成功した場合、戻り値は 0 以外 (TRUE) になります。
関数が失敗した場合、戻り値は 0 (FALSE) になります。 拡張エラー情報については、 GetLastError を呼び出します。
解説
各受信者キーについて、PFN_CMSG_EXPORT_KEY_AGREE関数は、pKeyAgreeEncryptInfo パラメーターが指すCMSG_KEY_AGREE_ENCRYPT_INFO構造体の rgpKeyAgreeKeyEncryptInfo メンバーによって参照されるCMSG_KEY_AGREE_KEY_ENCRYPT_INFO構造体の EncryptedKey メンバーを更新する必要があります。 この関数は、pContentEncryptInfo パラメーターが指すCMSG_CONTENT_ENCRYPT_INFO構造体の pfnAlloc メンバーと pfnFree メンバーを使用して、更新されるすべての値のメモリを管理する必要があります。
入力時に、pContentEncryptInfo メンバーが指すCMSG_CONTENT_ENCRYPT_INFO構造体の dwEncryptFlags メンバーがCMSG_CONTENT_ENCRYPT_PAD_ENCODED_LEN_FLAGに設定されている場合、pKeyAgreeEncryptInfo が指すCMSG_KEY_AGREE_ENCRYPT_INFO構造体の OriginatorPublicKeyInfo メンバーによって参照されるCERT_PUBLIC_KEY_INFO構造体のエフェメラル PublicKey メンバー常に同じ最大エンコード長を取得するには、パラメーターにゼロを埋め込む必要があります。
OID サポート関数を使用して、このコールバック関数を展開できます。 Wincrypt.h では、この目的のために次の定数を定義します。
CAPI1 キーと Cryptography API: Next Generation (CNG) キーには、さまざまなコールバック関数を定義する必要があります。 どちらの関数も同じシグネチャを持ちますが、OID は異なります。 呼び出される関数は、pContentEncryptInfo パラメーターが指すCMSG_CONTENT_ENCRYPT_INFO構造体の fCNG メンバーの値によって異なります。 次の表は、コールバック関数と fCNG メンバーの値の関係を示しています。
fCNG 値 | 常時 | 定義 |
---|---|---|
FALSE | CMSG_OID_EXPORT_KEY_AGREE_FUNCまたはCMSG_OID_CAPI1_EXPORT_KEY_AGREE_FUNC | "CryptMsgDllExportKeyAgree" |
TRUE | CMSG_OID_CNG_EXPORT_KEY_AGREE_FUNC | "CryptMsgDllCNGExportKeyAgree" |
要件
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | wincrypt.h |
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示