структура 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
Указывает тип соглашения ключа. Этот элемент может быть одним из следующих значений.
Значение | Значение |
---|---|
|
Создайте временную пару открытого и закрытого ключей для шифрования ключа шифрования содержимого. |
|
В настоящее время это значение не используется. |
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 |