Поделиться через


структура CRYPT_KEY_SIGN_MESSAGE_PARA (wincrypt.h)

Структура CRYPT_KEY_SIGN_MESSAGE_PARA содержит сведения о поставщике служб шифрования (CSP) и алгоритмах, используемых для подписания сообщения.

Синтаксис

typedef struct _CRYPT_KEY_SIGN_MESSAGE_PARA {
  DWORD                      cbSize;
  DWORD                      dwMsgAndCertEncodingType;
  union {
    HCRYPTPROV        hCryptProv;
    NCRYPT_KEY_HANDLE hNCryptKey;
  } DUMMYUNIONNAME;
  DWORD                      dwKeySpec;
  CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm;
  void                       *pvHashAuxInfo;
  CRYPT_ALGORITHM_IDENTIFIER PubKeyAlgorithm;
} CRYPT_KEY_SIGN_MESSAGE_PARA, *PCRYPT_KEY_SIGN_MESSAGE_PARA;

Члены

cbSize

Размер этой структуры данных в байтах.

dwMsgAndCertEncodingType

Указывает тип используемого сообщения и кодировку сертификата. Это может быть сочетание одного или нескольких из следующих значений.

Значение Значение
X509_ASN_ENCODING
Задает кодировку сертификата X.509 .
PKCS_7_ASN_ENCODING
Задает кодировку сообщений PKCS 7.

DUMMYUNIONNAME

DUMMYUNIONNAME.hCryptProv

Дескриптор поставщика служб конфигурации, используемый для подписывания сообщения. Для получения этого дескриптора вызывается функция CryptAcquireContext .

DUMMYUNIONNAME.hNCryptKey

Дескриптор API шифрования: CSP следующего поколения (CNG), используемый для подписывания сообщения. Алгоритмы подписи CNG поддерживаются только в функциях CNG.

dwKeySpec

Определяет тип закрытого ключа , используемого для подписи сообщения. Это должно быть одно из следующих значений. Этот элемент игнорируется, если ключ CNG передается в элемент hNCryptKey .

Значение Значение
AT_KEYEXCHANGE
Используйте ключ обмена ключами.
AT_SIGNATURE
Используйте ключ цифровой подписи.

HashAlgorithm

Структура CRYPT_ALGORITHM_IDENTIFIER , задающая алгоритм, используемый для создания хэша сообщения. Это должен быть хэш-алгоритм.

pvHashAuxInfo

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

PubKeyAlgorithm

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

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Верхняя часть wincrypt.h