структура 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 элемент pszObjId структуры CRYPT_ALGORITHM_IDENTIFIER должен иметь значение szOID_DH_SINGLE_PASS_STDDH_SHA1_KDF, а члену dwKeyChoice этой структуры CMSG_KEY_AGREE_RECIPIENT_ENCODE_INFO присвоено значение CMSG_KEY_AGREE_EPHEMERAL_KEY_CHOICE.

pvKeyEncryptionAuxInfo

Этот элемент в настоящее время не используется. Ему необходимо присвоить значение NULL.

KeyWrapAlgorithm

Структура CRYPT_ALGORITHM_IDENTIFIER , задающая алгоритм, используемый для упаковки ключей.

pvKeyWrapAuxInfo

Указатель на структуру CMSG_RC2_AUX_INFO , указывающую длину бита упаковки ключа. Этот элемент используется только в том случае, если элемент KeyWrapAlgorithm задает алгоритм RC2. Если KeyWrapAlgorithm указывает алгоритм, отличный от алгоритма RC2, этот член не используется и должен иметь значение NULL.

hCryptProv

Этот элемент не используется и должен иметь значение NULL.

Windows Server 2003 и Windows XP: Дескриптор поставщика служб шифрования (CSP), полученный с помощью функции CryptAcquireContext . Этот член является необязательным и может иметь значение 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

Структура CRYPT_DATA_BLOB , содержащая материал ключа пользователя (UKM), предоставляемый отправителем, чтобы гарантировать, что каждый раз, когда две стороны создают парный ключ, создается другой ключ. Этот элемент является необязательным, и если он не используется, все члены должны быть равны нулю.

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