共用方式為


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 成員來取得用來匯出密鑰之函式的位址。 您可以使用密碼編譯 API 來安裝函式:新一代 (CNG) 物件識別碼 (OID) 。

UserKeyingMaterial

CRYPT_DATA_BLOB結構,其中包含傳送者提供的使用者密鑰數據,以確保每次相同的兩方產生配對密鑰時,都會產生不同的金鑰。

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 [僅限桌面應用程式]
標頭 wincrypt.h