Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Na prática, a estrutura de uma solicitação CMC, mostrada pela sintaxe a seguir, é relativamente complexa porque geralmente contém solicitações aninhadas. Por exemplo, uma solicitação CMC pode conter zero ou uma solicitação PKCS #10 em uma sequência de TaggedRequest e pode conter zero ou uma mensagem PKCS #7 em uma sequência de TaggedContentInfo. Cada mensagem PKCS nº 7 aninhada pode conter uma solicitação CMC que pode, por sua vez, conter mais solicitações. O número de níveis de aninhamento é teoricamente ilimitado, mas a AC (autoridade de certificação) normalmente é configurada para limitar o tamanho de uma solicitação. Os atributos podem ser aplicados à solicitação de nível superior ou às solicitações aninhadas. Isso é discutido nas seções a seguir.
Estrutura CMCData
Uma solicitação CMC contém sequências de estruturas TaggedAttribute, TaggedRequeste taggedContentInfo ASN.1.
CmcData ::= SEQUENCE
{
controlSequence ControlSequence,
reqSequence ReqSequence,
cmsSequence CmsSequence,
otherMsgSequence OtherMsgSequence
}
ControlSequence ::= SEQUENCE OF TaggedAttribute
ReqSequence ::= SEQUENCE OF TaggedRequest
CmsSequence ::= SEQUENCE OF TaggedContentInfo
TaggedAttribute ::= SEQUENCE
{
bodyPartID BodyPartID,
type EncodedObjectID,
values AttributeSetValue
}
TaggedRequest ::= CHOICE
{
tcr [0] IMPLICIT TaggedCertificationRequest
}
TaggedContentInfo ::= SEQUENCE
{
bodyPartID BodyPartID,
contentInfo ANY
}
BodyPartID ::= INTEGER (0..4294967295)
EncodedObjectID ::= OBJECT IDENTIFIER
AttributeSetValue ::= SET OF ANY
Estrutura TaggedAttribute
Os atributos são incluídos em uma solicitação de certificado CMC adicionando-os à coleção TaggedAttribute. Cada estrutura na coleção contém uma ID de inteiro, um OID (identificador de objeto ASN.1) e um conjunto de valores. Os valores possíveis podem ser qualquer um dos seguintes.
CmcAddAttributes ::= SEQUENCE
{
pkiDataReference BodyPartID,
certReferences BodyPartIDSequence,
attributes Attributes
}
Attributes ::= SET OF Attribute
Attribute ::= SEQUENCE
{
type EncodedObjectID,
values AttributeSetValue
}
CmcAddExtensions ::= SEQUENCE
{
pkiDataReference BodyPartID,
certReferences BodyPartIDSequence,
extensions Extensions
}
Extensions ::= SEQUENCE OF Extension
Extension ::= SEQUENCE
{
extnId EncodedObjectID,
critical BOOLEAN DEFAULT FALSE,
extnValue OCTETSTRING
}
SenderNonce ::= OCTET STRING
TransactID ::= OCTET STRING
RegInfo ::= OCTET STRING
CMCAddAttributes
Se os atributos nessa estrutura se aplicarem a uma solicitação PKCS nº 10 aninhada, o campo certReferences conterá a BodyPartID que identifica a solicitação. Se os atributos se aplicarem a uma solicitação CMC aninhada, o campo pkiDataReference conterá o BodyPartID da solicitação. Atualmente, apenas um desses campos pode ser diferente de zero. Os atributos que podem ser incluídos estão listados no tópico Atributos com Suporte.
CmcAddExtensions
Essa estrutura pode conter extensões X.509 versão 3 mais extensões definidas pela Microsoft. Esse atributo é definido usando a interfaceIX509AttributeExtensions. Se as extensões se aplicarem a uma solicitação PKCS nº 10 aninhada, o campo certReferences conterá o BodyPartID que identifica a solicitação. Se as extensões se aplicarem a uma solicitação CMC aninhada, o campo pkiDataReference conterá o BodyPartID da solicitação. Atualmente, apenas um desses campos pode ser diferente de zero.
SenderNonce
Um nonce é dados binários aleatórios ou pseudo-aleatórios que podem ser incluídos em uma solicitação de certificado e transação de resposta para ajudar a garantir que a resposta ou solicitação não seja uma repetição de uma mensagem anterior. Para obter mais informações, consulte a propriedadeSenderNonce.
TransactID
Uma solicitação de certificado de ida e volta e uma transação de resposta podem ser rastreadas usando um identificador. O cliente gera uma ID de transação e a retém até que a autoridade de registro ou certificado responda com uma mensagem que conclua a transação. A resposta inclui o identificador. Para obter mais informações, consulte a propriedade TransactionId.
RegInfo
Esse atributo pode ser usado para conter qualquer informação de registro que o cliente opte por colocar na solicitação do CMC. O valor do atributo é uma cadeia de caracteres que contém pares nome-valor concatenados. Para obter mais informações, consulte a propriedadeNameValuePairs.
Tópicos relacionados