Метод IX509CertificateRequestPkcs10::get_CspStatuses (certenroll.h)
Свойство CspStatuses извлекает коллекцию объектов ICspStatus , которая соответствует предполагаемому использованию закрытого ключа, связанного с запросом сертификата.
Это свойство доступно только для чтения.
Синтаксис
HRESULT get_CspStatuses(
ICspStatuses **ppValue
);
Параметры
ppValue
Возвращаемое значение
None
Remarks
Это свойство извлекает коллекцию объектов ICspStatus . Каждый объект представляет одну пару "поставщик-алгоритм". Свойство CspStatuses отличается от метода GetCspStatuses . Метод позволяет задать параметр KeySpec , но CspStatuses использует свойство KeySpec , заданное для закрытого ключа, связанного с объектом IX509CertificateRequestPkcs10 . Это может быть одно из следующих значений.
Значение | Описание |
---|---|
XCN_AT_NONE | Выбраны только API шифрования: поставщики следующего поколения (CNG). |
XCN_AT_KEYEXCHANGE | Выбираются только поставщики криптографических служб (CSP) CryptoAPI с алгоритмами шифрования (включая обмен ключами). |
XCN_AT_SIGNATURE | Выбираются только поставщики криптографических служб (CSP) CryptoAPI с алгоритмами подписи. |
Если вы указываете шаблон при инициализации объекта запроса, атрибуты шаблона, такие как pKIDefaultCSPs и pKIDefaultKeySpec, влияют на то, какие пары поставщик/алгоритм изначально включены в коллекции. Для получения сведений о паре можно вызвать следующие свойства для каждого объекта ICspStatus :
- Свойство CspInformation извлекает сведения о поставщике.
- Свойство CspAlgorithm извлекает сведения об алгоритме.
- Свойство EnrollmentStatus извлекает объект IX509EnrollmentStatus . Вызовите свойство Selected объекта состояния, чтобы определить, включена ли пара "поставщик-алгоритм" для этого запроса.
- Свойство Ordinal извлекает позицию в коллекции пары "поставщик-алгоритм".
Коллекция, полученная этим методом, сохраняется внутри объекта запроса. Коллекция существует до тех пор, пока продолжает существовать объект PKCS #10.
Предположим, например, что свойству KeySpec закрытого ключа, связанного с объектом запроса, присвоено значение XCN_AT_SIGNATURE и что для инициализации запроса используется шаблон. Следующие операторы будут истинными:
- Коллекция объектов ICspStatus создается и сохраняется в объекте IX509CertificateRequestPkcs10 . Коллекция содержит все допустимые пары "поставщик-алгоритм", установленные на компьютере.
- Так как свойству KeySpec не задано значение XCN_AT_NONE, для свойства Selected задано значение SelectedNo для каждой пары api шифрования: поставщик и алгоритм следующего поколения (CNG) в коллекции.
- Так как для свойства KeySpec не задано значение XCN_AT_KEYEXCHANGE, свойство Selected имеет значение SelectedNo для каждой пары CSP/algorithm CryptoAPI в коллекции, где алгоритм можно использовать только для шифрования данных или архивирования ключа.
- Для каждого поставщика, на который ссылается шаблон или закрытый ключ, но не поддерживается на компьютере, создается и добавляется в коллекцию заполнитель ICspStatus , а свойству Selected присваивается значение SelectedNo.
- Свойство Selected имеет значение SelectedYes для каждой пары CSP/algorithm CryptoAPI, где алгоритм можно использовать только для подписывания данных.
- Свойство Ordinal задается так, чтобы оно отражало порядок CSP, если он есть, идентифицируемый атрибутом шаблона pKIDefaultCSPs . Поставщики служб конфигурации, перечисленные в первую очередь по атрибуту , упорядочены сначала в коллекции. Это свойство используется во время регистрации, если необходимо создать закрытый ключ. Первая выбранная пара CSP/алгоритм используется для создания ключа, но в случае сбоя операции выполняется попытка следующей выбранной пары.
Перед вызовом этого метода необходимо инициализировать объект IX509CertificateRequestPkcs10 . Дополнительные сведения см. в любом из следующих методов:
- InitializeDecode
- InitializeFromCertificate
- InitializeFromPrivateKey
- InitializeFromPublicKey
- InitializeFromTemplateName
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 [только классические приложения] |
Целевая платформа | Windows |
Header | certenroll.h |
DLL | CertEnroll.dll |