다음을 통해 공유


CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO 구조체(wincrypt.h)

CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO 구조에는 키 계약 키 관리를 사용하는 메시지 수신자에 대한 정보가 포함됩니다. 이 구조체는 CMSG_RECIPIENT_ENCODE_INFO 구조체와 함께 사용됩니다.

구문

typedef struct _CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO {
  DWORD                                     cbSize;
  CRYPT_ALGORITHM_IDENTIFIER                KeyEncryptionAlgorithm;
  void                                      *pvKeyEncryptionAuxInfo;
  CRYPT_ALGORITHM_IDENTIFIER                KeyWrapAlgorithm;
  void                                      *pvKeyWrapAuxInfo;
  HCRYPTPROV_LEGACY                         hCryptProv;
  DWORD                                     dwKeySpec;
  DWORD                                     dwKeyChoice;
  union {
    PCRYPT_ALGORITHM_IDENTIFIER pEphemeralAlgorithm;
    PCERT_ID                    pSenderId;
  } DUMMYUNIONNAME;
  CRYPT_DATA_BLOB                           UserKeyingMaterial;
  DWORD                                     cRecipientEncryptedKeys;
  PCMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO *rgpRecipientEncryptedKeys;
} CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO, *PCMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO;

멤버

cbSize

이 구조체의 크기(바이트)입니다.

KeyEncryptionAlgorithm

암호화에 사용되는 알고리즘을 지정하는 CRYPT_ALGORITHM_IDENTIFIER 구조체입니다.

ECC 받는 사람의 경우 이 CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO 구조체의 dwKeyChoice 멤버가 CMSG_KEY_AGREE_EPHEMERAL_KEY_CHOICE 설정된 상태에서 CRYPT_ALGORITHM_IDENTIFIER 구조체의 pszObjId 멤버를 szOID_DH_SINGLE_PASS_STDDH_SHA1_KDF 설정해야 합니다.

pvKeyEncryptionAuxInfo

이 멤버는 현재 사용되지 않습니다. NULL로 설정해야 합니다.

KeyWrapAlgorithm

키 래핑에 사용되는 알고리즘을 지정하는 CRYPT_ALGORITHM_IDENTIFIER 구조체입니다.

pvKeyWrapAuxInfo

키 래핑 비트 길이를 지정하는 CMSG_RC2_AUX_INFO 구조체에 대한 포인터입니다. 이 멤버는 KeyWrapAlgorithm 멤버가 RC2 알고리즘을 지정하는 경우에만 사용됩니다. KeyWrapAlgorithm이 RC2 알고리즘 이외의 알고리즘을 지정하는 경우 이 멤버는 사용되지 않으며 NULL이어야 합니다.

hCryptProv

이 멤버는 사용되지 않으며 NULL로 설정해야 합니다.

Windows Server 2003 및 Windows XP: CryptAcquireContext 함수를 사용하여 가져온 CSP(암호화 서비스 공급자)에 대한 핸들입니다. 이 멤버는 선택 사항이며 NULL일 수 있습니다. 이 멤버의 데이터 형식은 HCRYPTPROV입니다.

dwKeySpec

이 멤버는 현재 사용되지 않습니다.

dwKeyChoice

키 규약의 유형을 나타냅니다. 이 멤버는 다음 값 중 하나일 수 있습니다.

의미
CMSG_KEY_AGREE_EPHEMERAL_KEY_CHOICE
콘텐츠 암호화 키를 암호화하는 임시 퍼블릭/프라이빗 키 쌍 을 만듭니다.
CMSG_KEY_AGREE_STATIC_KEY_CHOICE
이 값은 현재 사용되지 않습니다.

DUMMYUNIONNAME

DUMMYUNIONNAME.pEphemeralAlgorithm

임시 공개 키 알고리즘 및 매개 변수를 포함하는 CRYPT_ALGORITHM_IDENTIFIER 구조체에 대한 포인터입니다. 이 멤버는 dwKeyChoice 멤버에 CMSG_KEY_AGREE_EPHEMERAL_KEY_CHOICE 포함할 때 사용됩니다.

DUMMYUNIONNAME.pSenderId

CERT_ID 구조체에 대한 포인터입니다. 이 멤버는 dwKeyChoice 멤버에 CMSG_KEY_AGREE_STATIC_KEY_CHOICE 포함할 때 사용됩니다. 이 멤버는 현재 사용되지 않습니다.

UserKeyingMaterial

동일한 두 당사자가 쌍 단위 키를 생성할 때마다 다른 키가 생성되도록 발신자가 제공하는 UKM(사용자 키 지정 자료)을 포함하는 CRYPT_DATA_BLOB 구조입니다 . 이 멤버는 선택 사항이며 사용하지 않을 경우 모든 멤버를 0으로 설정해야 합니다.

cRecipientEncryptedKeys

rgpRecipientEncryptedKeys 배열의 요소 수입니다.

rgpRecipientEncryptedKeys

수신자가 이 키 규약 키를 받을 수 있도록 하는 CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO 구조의 배열입니다. cRecipientEncryptedKeys 멤버에는 이 구조체의 요소 수가 포함됩니다.

요구 사항

   
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
머리글 wincrypt.h

추가 정보

CERT_ID

CMSG_RC2_AUX_INFO

CMSG_RECIPIENT_ENCODE_INFO

CMSG_RECIPIENT_ENCRYPTED_KEY_ENCODE_INFO

CRYPT_ALGORITHM_IDENTIFIER

CRYPT_DATA_BLOB

CryptAcquireContext