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,表示要使用的密鑰標識碼。 這個成員可以是下列其中一個值。
值 | 意義 |
---|---|
|
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 [僅限桌面應用程式] |
標頭 | wincrypt.h |