CMSG_KEY_AGREE_ENCRYPT_INFO構造体 (wincrypt.h)
CMSG_KEY_AGREE_ENCRYPT_INFO構造には、エンベロープされたメッセージのすべての主要な契約受信者に適用できる暗号化情報が含まれています。 PFN_CMSG_EXPORT_KEY_AGREE関数は、この構造体を更新します。
構文
typedef struct _CMSG_KEY_AGREE_ENCRYPT_INFO {
DWORD cbSize;
DWORD dwRecipientIndex;
CRYPT_ALGORITHM_IDENTIFIER KeyEncryptionAlgorithm;
CRYPT_DATA_BLOB UserKeyingMaterial;
DWORD dwOriginatorChoice;
union {
CERT_ID OriginatorCertId;
CERT_PUBLIC_KEY_INFO OriginatorPublicKeyInfo;
} DUMMYUNIONNAME;
DWORD cKeyAgreeKeyEncryptInfo;
PCMSG_KEY_AGREE_KEY_ENCRYPT_INFO *rgpKeyAgreeKeyEncryptInfo;
DWORD dwFlags;
} CMSG_KEY_AGREE_ENCRYPT_INFO, *PCMSG_KEY_AGREE_ENCRYPT_INFO;
メンバー
cbSize
この構造体のサイズ (バイト単位)。
dwRecipientIndex
PFN_CMSG_EXPORT_KEY_AGREE関数の pContentEncryptInfo パラメーターで指定された受信者リスト内の受信者の序数を指定する値。
KeyEncryptionAlgorithm
コンテンツ暗号化キーの暗号化に使用するアルゴリズムを指定する CRYPT_ALGORITHM_IDENTIFIER 構造体。 CryptMsgOpenToEncode 関数は、CRYPT_ALGORITHM_IDENTIFIER構造体の pszObjId メンバーを使用して、キーのエクスポートに使用される関数のアドレスを取得します。 関数は、Cryptography API: Next Generation (CNG) オブジェクト識別子 (OID) を使用してインストールできます。
UserKeyingMaterial
送信者が提供するユーザー キーマテリアルを含む CRYPT_DATA_BLOB 構造。同じ 2 者がペアワイズ キーを生成するたびに異なるキーが生成されるようにします。
dwOriginatorChoice
使用するキー識別子を示す DWORD 。 このメンバーには、次のいずれかの値を指定できます。
値 | 意味 |
---|---|
|
OriginatorCertId |
|
OriginatorPublicKeyInfo |
DUMMYUNIONNAME
DUMMYUNIONNAME.OriginatorCertId
メッセージ発信元の公開キーを識別する CERT_ID 構造体。
DUMMYUNIONNAME.OriginatorPublicKeyInfo
メッセージ発信元の公開キーを含むCERT_PUBLIC_KEY_INFO構造体。
cKeyAgreeKeyEncryptInfo
rgpKeyAgreeKeyEncryptInfo パラメーターの受信者の数を示す 値です。
rgpKeyAgreeKeyEncryptInfo
各 受信者の暗号化 されたキーを含むCMSG_KEY_AGREE_KEY_ENCRYPT_INFO構造体の配列。
dwFlags
更新されたメンバーと、 CryptMsgOpenToEncode 関数を使用して解放する必要があるメモリ割り当てを指定する値。
値 | 意味 |
---|---|
|
UserKeyingMaterial メンバーが更新されました。 |
|
KeyEncryptionAlgorithm メンバーによって参照されるCRYPT_ALGORITHM_IDENTIFIER構造体の pszObjId メンバーが更新されました。 |
|
KeyEncryptionAlgorithm メンバーによって参照されるCRYPT_ALGORITHM_IDENTIFIER構造体の Parameters メンバーが更新されました。 |
|
OriginatorPublicKeyInfo メンバーによって参照されるCERT_PUBLIC_KEY_INFO構造体の Algorithm.pszObjId メンバーが更新されました。 |
|
OriginatorPublicKeyInfo メンバーによって参照されるCERT_PUBLIC_KEY_INFO構造体の PublicKey メンバーが更新されました。 |
|
OriginatorPublicKeyInfo メンバーによって参照されるCERT_PUBLIC_KEY_INFO構造体の Algorithm.Parameters メンバーが更新されました。 |
注釈
dwMsgType パラメーターを CMSG_ENVELOPED に設定して呼び出すと、CryptMsgOpenToEncode 関数は、CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO構造体からCMSG_KEY_AGREE_ENCRYPT_INFO構造体を初期化します。 CryptMsgOpenToEncode 関数は、PFN_CMSG_EXPORT_KEY_AGREE関数を呼び出して、CMSG_KEY_AGREE_ENCRYPT_INFO構造体を更新します。 コールバック関数が見つからない場合、 CryptMsgOpenToEncode 関数は、この構造体に 、CMSG_CONTENT_ENCRYPT_INFO 構造体からの既定のキー情報を入力します。
コールバック関数では、 CMSG_KEY_AGREE_ENCRYPT_INFO 構造体の次のメンバーを更新できます。
- UserKeyingMaterial
- KeyEncryptionAlgorithm.pszObjId
- KeyEncryptionAlgorithm.Parameters
- dwOriginatorChoice
- OriginatorCertId
- OriginatorPublicKeyInfo
- dwFlags
他のメンバーは読み取り専用です。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
Header | wincrypt.h |