Функции расширения

Формат сертификата X. 509 версии 3 определяет несколько расширений, которые могут быть добавлены к сертификату для предоставления расширенной информации об использовании ключа, политиках сертификатов и ограничениях, других формах имен и т. д.

CertEnroll.dll реализует следующие интерфейсы для управления расширениями сертификатов:

В каждом из следующих разделов обсуждается функция, экспортируемая с помощью Xenroll.dll для управления расширениями сертификатов. В каждом разделе также обсуждается использование CertEnroll.dll для замены функции или указывает, что сопоставление между двумя библиотеками не существует:

аддцерттипеторекуествстр

Функция аддцерттипеторекуествстр в Xenroll.dll добавляет к запросу шаблон сертификата по имени.

С помощью CertEnroll.dll предпочтительным методом включения шаблона в запрос на сертификат является использование метода инитиализефромтемплатенаме для # объекта запроса PKCS 10 или [* PKCS) или метода инитиализефроминнеррекуесттемплатенаме в запросе CMC.

Если конкретный шаблон недоступен на клиенте, но должен быть понят центром сертификации (ЦС), можно использовать интерфейс IX509ExtensionTemplateName для добавления шаблона версии 1 или использовать интерфейс IX509ExtensionTemplate для добавления шаблона версии 2 к запросу на сертификат. Например, чтобы добавить шаблон версии 1, выполните следующие действия.

  1. Создайте объект IX509Extensions .
  2. Создайте объект IX509ExtensionTemplateName и вызовите метод инитиализинкоде , указав имя шаблона.
  3. Добавьте расширение, созданное в коллекцию IX509Extensions , вызвав метод Add .
  4. Создайте объект IX509AttributeExtensions и вызовите метод инитиализинкоде , указав коллекцию IX509Extensions во входных данных.
  5. Получите объект коллекции икриптаттрибутес , вызвав свойство криптаттрибутес для существующего объекта запроса IX509CertificateRequestPkcs10 или IX509CertificateRequestCmc .

аддцерттипеторекуествстрекс

Функция аддцерттипеторекуествстрекс в Xenroll.dll добавляет шаблон сертификата к запросу по имени, идентификатору объекта и версии.

Сведения об использовании CertEnroll.dll для включения сведений о шаблоне в запрос см. в разделе Аддцерттипеторекуествстр.

аддекстенсионсторекуест

Функция аддекстенсионсторекуест в Xenroll.dll Добавляет коллекцию расширений в запрос.

В CertEnroll.dll расширения добавляются в коллекцию Attributes запроса CMC или PKCS # 10. Чтобы добавить расширения, выполните следующие действия.

  1. Создайте объект IX509Extensions .
  2. Создайте объект IX509Extension и вызовите метод Initialize , чтобы создать расширение на основе идентификатора объекта и значения расширения или использовать любой из перечисленных выше интерфейсов, чтобы определить одно из более распространенных расширений.
  3. Добавьте каждое новое расширение, созданное на предыдущем шаге, в коллекцию IX509Extensions , вызвав метод Add .

аддекстенсионторекуествстр

Функция аддекстенсионторекуествстр в Xenroll.dll добавляет к запросу определенное расширение.

В CertEnroll.dll конкретное расширение должно быть определено и Добавлено в коллекцию Extensions перед добавлением коллекции Extensions в коллекцию Attributes запроса CMC или PKCS # 10. Дополнительные сведения см. в обсуждении Аддекстенсионсторекуест выше.

енаблесмимекапабилитиес

Функция енаблесмимекапабилитиес в Xenroll.dll указывает или получает логическое значение, указывающее, следует ли добавить расширение смимекапабилитиес в запрос.

Можно вызвать свойство смимекапабилитиес объекта IX509CertificateRequestPkcs10 , чтобы автоматически добавить объект IX509ExtensionSmimeCapabilities в запрос перед кодированием.

инклудесубжекткэйид

Функция инклудесубжекткэйид в Xenroll.dll указывает или получает логическое значение, указывающее, следует ли добавить расширение субжекткэйидентифиер в запрос.

По умолчанию расширение субжекткэйидентифиер создается при инициализации объекта запроса IX509CertificateRequestPkcs10 . Это поведение можно переопределить, вызвав свойство суппрессоидс .

Если у вас есть пара из открытого и закрытого ключей, можно также использовать интерфейс IX509ExtensionSubjectKeyIdentifier в CertEnroll.dll, чтобы добавить расширение субжекткэйидентифиер к запросу сертификата, выполнив следующие действия.

  1. Создайте объект IX509Extensions .
  2. Создайте объект IX509ExtensionSubjectKeyIdentifier и вызовите метод инитиализинкоде , указав строку, содержащую идентификатор. Как правило, это 20-байтовый хэш SHA-1 открытого ключа , содержащегося в сертификате подписи ЦС.
  3. Добавьте расширение, созданное в коллекцию IX509Extensions , вызвав метод Add .
  4. Создайте объект IX509AttributeExtensions и вызовите метод инитиализинкоде , указав коллекцию IX509Extensions во входных данных.
  5. Получите объект коллекции икриптаттрибутес , вызвав свойство криптаттрибутес для существующего объекта запроса IX509CertificateRequestPkcs10 или IX509CertificateRequestCmc .

ресетекстенсионс

Функция ресетекстенсионс в Xenroll.dll удаляет коллекцию расширений из запроса.

Чтобы удалить расширение из запроса по номеру индекса с помощью CertEnroll.dll, вызовите метод Remove в коллекции IX509Extensions . Чтобы удалить все атрибуты из запроса, вызовите метод clear .

Сопоставление Xenroll.dll CertEnroll.dll

икриптаттрибутес

IX509Extension

IX509Extensions