Расширения CMC
Расширения включены в запрос CMC, добавив их в структуру TaggedAttributes, показанную в следующем примере синтаксиса ASN.1. Дополнительные сведения см. в разделе Атрибуты.
CmcData ::= SEQUENCE
{
controlSequence ControlSequence,
reqSequence ReqSequence,
cmsSequence CmsSequence,
otherMsgSequence OtherMsgSequence
}
ControlSequence ::= SEQUENCE OF TaggedAttribute
TaggedAttribute ::= SEQUENCE
{
bodyPartID BodyPartID,
type EncodedObjectID,
values AttributeSetValue
}
BodyPartID ::= INTEGER (0..4294967295)
EncodedObjectID ::= OBJECT IDENTIFIER
AttributeSetValue ::= SET OF ANY
Каждая структура в TaggedAttributes содержит целочисленный идентификатор, идентификатор объекта ASN.1 (OID) и набор значений. Расширения включаются в запрос путем добавления структуры CmcAddExtensions в поле значений. Синтаксис структуры ASN.1 показан в следующем примере. Идентификатор объекта XCN_OID_CMC_ADD_EXTENSIONS (1.3.6.1.5.5.7.7.8).
CmcAddExtensions ::= SEQUENCE
{
pkiDataReference BodyPartID,
certReferences BodyPartIDSequence,
extensions Extensions
}
Extensions ::= SEQUENCE OF Extension
Extension ::= SEQUENCE
{
extnId EncodedObjectID,
critical BOOLEAN DEFAULT FALSE,
extnValue OCTETSTRING
}
В следующей процедуре описывается использование API регистрации сертификатов для добавления расширений в запрос сертификата CMC.
Использование API регистрации сертификатов для добавления расширений в запрос сертификата CMC
- Создайте расширение с помощью любого из доступных интерфейсов, производных от интерфейсаIX509Extension, или используйте объект IX509Extens ion напрямую для создания пользовательских расширений.
- Вызовите свойство X509Extensions в объекте IX509CertificateRequestCmc, чтобы получить коллекцию IX509Extensions.
- Добавьте расширения, созданные на шаге 1, в коллекцию IX509Extensions.
- Вызов регистрации для автоматического выполнения следующих действий:
- Получение объектаICryptAttributes из объекта IX509CertificateRequestCmc.
- Создание и инициализация объектаIX509AttributeExtensions с помощью коллекции IX509Extensions, полученной на шаге 2.
- Создайте коллекциюIX509Attributes и добавьте в него объект IX509AttributeExtens ions.
- Используйте коллекциюIX509Attributesдля инициализации объектаICryptAttribute.
- Добавьте объектICryptAttribute в коллекциюICryptAttributes.
Связанные разделы