структура 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

Значение типа , указывающее порядковый номер получателя в списке получателей, заданном параметром pContentEncryptInfo функции PFN_CMSG_EXPORT_KEY_AGREE .

KeyEncryptionAlgorithm

Структура CRYPT_ALGORITHM_IDENTIFIER , указывающая алгоритм, используемый для шифрования ключа шифрования содержимого. Функция CryptMsgOpenToEncode использует элемент pszObjId структуры CRYPT_ALGORITHM_IDENTIFIER для получения адреса функции, используемой для экспорта ключа. Функцию можно установить с помощью API шифрования: идентификатор объекта (OID) следующего поколения (CNG).

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
Обновлен элемент pszObjIdструктуры CRYPT_ALGORITHM_IDENTIFIER , на который ссылается элемент KeyEncryptionAlgorithm .
CMSG_KEY_AGREE_ENCRYPT_FREE_PARA_FLAG
0x00000001
Обновлен элемент Parametersструктуры CRYPT_ALGORITHM_IDENTIFIER , на которую ссылается элемент KeyEncryptionAlgorithm .
CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_ALG_FLAG
0x00000004
Обновлен элемент Algorithm.pszObjIdструктуры CERT_PUBLIC_KEY_INFO , на который ссылается член OriginatorPublicKeyInfo .
CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_BITS_FLAG
0x00000010
Обновлен элемент PublicKeyструктуры CERT_PUBLIC_KEY_INFO , на которую ссылается член OriginatorPublicKeyInfo .
CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_PARA_FLAG
0x00000008
Обновлен элемент Algorithm.Parametersструктуры CERT_PUBLIC_KEY_INFO , на которую ссылается член OriginatorPublicKeyInfo .

Комментарии

При вызове с параметром dwMsgType , заданным CMSG_ENVELOPED, функция CryptMsgOpenToEncode инициализирует структуру CMSG_KEY_AGREE_ENCRYPT_INFO из структуры CMSG_KEY_AGREE_RECIPIENT_ENCODE_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