Extensões do CMC
As extensões são incluídas em uma solicitação CMC adicionando-as à estrutura TaggedAttributes mostrada no exemplo de sintaxe ASN.1 a seguir. Para obter mais informações, consulte o tópico Atributos .
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
Cada estrutura na coleção TaggedAttributes contém uma ID de inteiro, um OID (identificador de objeto ASN.1) e um conjunto de valores. As extensões são incorporadas a uma solicitação adicionando uma estrutura CmcAddExtensions ao campo valores . A sintaxe da estrutura ASN.1 é mostrada no exemplo a seguir. O identificador de objeto é 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
}
O procedimento a seguir discute como usar a API de Registro de Certificado para adicionar extensões a uma solicitação de certificado CMC.
Para usar a API de Registro de Certificado para adicionar extensões a uma solicitação de certificado CMC
- Crie uma extensão usando qualquer uma das interfaces disponíveis derivadas da interface IX509Extension ou use o objeto IX509Extension diretamente para criar extensões personalizadas.
- Chame a propriedade X509Extensions no objeto IX509CertificateRequestCmc para recuperar uma coleção IX509Extensions .
- Adicione as extensões criadas na etapa 1 à coleção IX509Extensions .
- Chame Registrar para executar automaticamente as seguintes ações:
- Recupere um objeto ICryptAttributes do objeto IX509CertificateRequestCmc .
- Crie e inicialize um objeto IX509AttributeExtensions usando a coleção IX509Extensions recuperada na etapa 2.
- Crie uma coleção IX509Attributes e adicione o objeto IX509AttributeExtensions a ela.
- Use a coleção IX509Attributes para inicializar um objeto ICryptAttribute .
- Adicione o objeto ICryptAttribute à coleção ICryptAttributes .
Tópicos relacionados