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 구조입니다 .
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 |