Функции атрибутов

Атрибуты можно добавить в запрос сертификата, чтобы предоставить центру сертификации (ЦС) дополнительные сведения, которые он может использовать при создании и выдаче сертификата.

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

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

addAttributeToRequestWStr

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

Как правило, чтобы добавить атрибут в запрос с помощью объектов, реализованных в CertEnroll.dll, можно выполнить следующие действия:

  1. Создайте объект коллекции IX509Attributes .
  2. Создайте объект IX509Attribute и вызовите метод Initialize , чтобы создать атрибут на основе идентификатора объекта и значения атрибута, или используйте любой из перечисленных ранее интерфейсов для определения одного из наиболее распространенных атрибутов.
  3. Добавьте каждый новый атрибут, созданный на предыдущем шаге, в коллекцию IX509Attributes с помощью метода Add .
  4. Создайте объект ICryptAttribute и инициализируйте его, вызвав метод InitializeFromValues и указав коллекцию IX509Attributes во входных данных.
  5. Получите объект коллекции ICryptAttributes , вызвав свойство CryptAttributes для существующего объекта запроса IX509CertificateRequestPkcs10 или IX509CertificateRequestCmc .
  6. Добавьте объект ICryptAttribute в коллекцию ICryptAttributes .

AddAuthenticatedAttributesToPKCS7Request

Атрибуты, прошедшие проверку подлинности, — это пары "имя-значение", которые подписываются и добавляются в подпись. Функция AddAuthenticatedAttributesToPKCS7Request в Xenroll.dll добавляет массив атрибутов, прошедших проверку подлинности, в запрос PKCS #7 .

Как обсуждалось выше для функции addAttributeToRequestWStr , можно использовать CertEnroll.dll, чтобы легко определить и добавить коллекцию атрибутов в запрос сертификата. Однако нельзя выбрать, прошел ли атрибут проверку подлинности. Процесс регистрации автоматически принимает это решение.

addNameValuePairToRequestWStr

Функция addNameValuePairToRequestWStr в Xenroll.dll добавляет в запрос пару "имя-значение" без проверки подлинности.

Вы можете использовать интерфейс IX509NameValuePair в CertEnroll.dll для определения пары "имя-значение" и добавить коллекцию пар "имя-значение" в объект запроса CMC, выполнив следующие действия:

  1. Создайте и инициализируйте объект IX509CertificateRequestCmc . Процесс инициализации создает пустую коллекцию IX509NameValuePairs .
  2. Вызовите свойство NameValuePairs для существующего объекта запроса CMC, чтобы получить коллекцию.
  3. Создайте и инициализируйте объект IX509NameValuePair .
  4. Добавьте каждую новую пару "имя-значение" в коллекцию IX509NameValuePairs , вызвав метод Add .

Процесс регистрации помещает коллекцию пар "имя-значение" в структуру TaggedAttribute запроса CMC.

AddNameValuePairToSignatureWStr

Функция AddNameValuePairToSignatureWStr в Xenroll.dll добавляет в запрос пару имя-значение, прошедшее проверку подлинности. Обычно используется для указания имени инициатора запроса в запросе регистрации от имени (EOBO).

В CertEnroll.dll используйте свойство RequesterName , чтобы указать имя в запросе EOBO.

ClientId

Функция ClientId в Xenroll.dll задает или извлекает атрибут ClientId .

Используйте свойство ClientId в CertEnroll.dll, чтобы добавить этот атрибут в запрос CMC или PKCS #10.

RenewalCertificate

Функция RenewalCertificate в Xenroll.dll задает или извлекает атрибут RenewalCertificate .

В CertEnroll.dll при вызове InitializeFromCertificate для объекта PKCS #7 или PKCS создается автоматически.

resetAttributes

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

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

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

ICryptAttribute

ICryptAttributes

IX509Attribute

IX509Attributes

IX509NameValuePair

IX509NameValuePairs