Расширения 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.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 , или используйте объект IX509Extension напрямую для создания пользовательских расширений.
- Вызовите свойство X509Extensions для объекта IX509CertificateRequestCmc , чтобы получить коллекцию IX509Extensions .
- Добавьте расширения, созданные на шаге 1, в коллекцию IX509Extensions .
- Вызовите регистрацию , чтобы автоматически выполнить следующие действия:
- Получение объекта ICryptAttributes из объекта IX509CertificateRequestCmc .
- Создайте и инициализируйте объект IX509AttributeExtensions с помощью коллекции IX509Extensions , полученной на шаге 2.
- Создайте коллекцию IX509Attributes и добавьте в нее объект IX509AttributeExtensions .
- Используйте коллекцию IX509Attributes для инициализации объекта ICryptAttribute .
- Добавьте объект ICryptAttribute в коллекцию ICryptAttributes .
Связанные темы