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


Метод 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 . Дополнительные сведения см. в любом из следующих методов:

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header certenroll.h
DLL CertEnroll.dll

См. также раздел

ICspAlgorithm

ICspAlgorithms

ICspInformation

ICspInformations

ICspStatus

IX509CertificateRequestPkcs10