структура CRYPT_KEY_PROV_INFO (wincrypt.h)
Структура CRYPT_KEY_PROV_INFO содержит сведения о контейнере ключей в поставщике служб шифрования (CSP).
Синтаксис
typedef struct _CRYPT_KEY_PROV_INFO {
LPWSTR pwszContainerName;
LPWSTR pwszProvName;
DWORD dwProvType;
DWORD dwFlags;
DWORD cProvParam;
PCRYPT_KEY_PROV_PARAM rgProvParam;
DWORD dwKeySpec;
} CRYPT_KEY_PROV_INFO, *PCRYPT_KEY_PROV_INFO;
Члены
pwszContainerName
Указатель на строку Юникода, завершающуюся null, которая содержит имя контейнера ключей.
Если член dwProvType равен нулю, эта строка содержит имя ключа в поставщике хранилища ключей CNG. Эта строка передается в качестве параметра pwszKeyName в функцию NCryptOpenKey .
pwszProvName
Указатель на строку Юникода, завершающуюся null, которая содержит имя CSP.
Если член dwProvType равен нулю, эта строка содержит имя поставщика хранилища ключей CNG. Эта строка передается в качестве параметра pwszProviderName в функцию NCryptOpenStorageProvider .
dwProvType
Указывает тип CSP. Это может быть ноль или один из типов поставщика служб шифрования.
Если этот член равен нулю, контейнер ключей является одним из поставщиков хранилища ключей CNG.
dwFlags
Набор флагов, указывающих дополнительные сведения о поставщике. Это может быть ноль или одно из следующих значений.
Криптографические функции CryptDecryptMessage, CryptSignMessage, CryptDecryptAndVerifyMessageSignature и CryptSignAndEncryptMessage выполняют внутренние операции CryptAcquireContext с помощью CRYPT_KEY_PROV_INFO из сертификата. Если установлен флаг CERT_SET_KEY_CONTEXT_PROP_ID или CERT_SET_KEY_PROV_HANDLE_PROP_ID , эти криптографические функции могут вызывать CertSetCertificateContextProperty с CERT_KEY_CONTEXT_PROP_ID. Этот вызов позволяет держать дескриптор поставщика ключей открытым для последующих вызовов упомянутых криптографических функций, которые используют тот же сертификат, что устраняет необходимость выполнения дополнительных вызовов CryptAcquireContext, повышая эффективность. Кроме того, поскольку некоторые поставщики могут требовать ввода пароля для вызовов CryptAcquireContext, желательно, чтобы приложения свели к минимуму количество вызовов CryptAcquireContext . Дескриптора для поставщиков ключей, которые были открыты, автоматически освобождаются при закрытии хранилища.
Например, рассмотрим почтовое приложение, в котором получено пять зашифрованных сообщений, все из которых зашифрованы с помощью открытого ключа из одного сертификата. Если дескриптор поставщика ключей остается открытым после обработки первого сообщения, вызовы CryptAcquireContext не требуются для четырех оставшихся сообщений.
cProvParam
Количество элементов в массиве rgProvParam .
Если элемент dwProvType равен нулю, этот элемент не используется и должен быть равен нулю.
rgProvParam
Массив CRYPT_KEY_PROV_PARAM структур, содержащих параметры для контейнера ключей. Элемент cProvParam содержит количество элементов в этом массиве.
Если член dwProvType равен нулю, этот элемент не используется и должен иметь значение NULL.
dwKeySpec
Спецификация извлекаемого закрытого ключа.
Следующие значения определяются для поставщика по умолчанию.
Если член dwProvType равен нулю, это значение передается в качестве параметра dwLegacyKeySpec в функцию NCryptOpenKey .
Значение | Значение |
---|---|
|
Ключи, используемые для шифрования и расшифровки ключей сеанса. |
|
Ключи, используемые для создания и проверки цифровых подписей. |
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Верхняя часть | wincrypt.h |