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 。 このメンバーには、次のいずれかの値を指定できます。

意味
CMSG_KEY_AGREE_ORIGINATOR_CERT
OriginatorCertId
CMSG_KEY_AGREE_ORIGINATOR_PUBLIC_KEY
OriginatorPublicKeyInfo

DUMMYUNIONNAME

DUMMYUNIONNAME.OriginatorCertId

メッセージ発信元の公開キーを識別する CERT_ID 構造体。

DUMMYUNIONNAME.OriginatorPublicKeyInfo

メッセージ発信元の公開キーを含むCERT_PUBLIC_KEY_INFO構造体。

cKeyAgreeKeyEncryptInfo

rgpKeyAgreeKeyEncryptInfo パラメーターの受信者の数を示す 値です。

rgpKeyAgreeKeyEncryptInfo

受信者の暗号化 されたキーを含むCMSG_KEY_AGREE_KEY_ENCRYPT_INFO構造体の配列。

dwFlags

更新されたメンバーと、 CryptMsgOpenToEncode 関数を使用して解放する必要があるメモリ割り当てを指定する値。

意味
CMSG_KEY_AGREE_ENCRYPT_FREE_MATERIAL_FLAG
0x00000002
UserKeyingMaterial メンバーが更新されました。
CMSG_KEY_AGREE_ENCRYPT_FREE_OBJID_FLAG
0x00000020
KeyEncryptionAlgorithm メンバーによって参照されるCRYPT_ALGORITHM_IDENTIFIER構造体の pszObjId メンバーが更新されました。
CMSG_KEY_AGREE_ENCRYPT_FREE_PARA_FLAG
0x00000001
KeyEncryptionAlgorithm メンバーによって参照されるCRYPT_ALGORITHM_IDENTIFIER構造体の Parameters メンバーが更新されました。
CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_ALG_FLAG
0x00000004
OriginatorPublicKeyInfo メンバーによって参照されるCERT_PUBLIC_KEY_INFO構造体の Algorithm.pszObjId メンバーが更新されました。
CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_BITS_FLAG
0x00000010
OriginatorPublicKeyInfo メンバーによって参照されるCERT_PUBLIC_KEY_INFO構造体の PublicKey メンバーが更新されました。
CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_PARA_FLAG
0x00000008
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