Atributos de CMC
En la práctica, la estructura de una solicitud CMC, mostrada por la sintaxis siguiente, es relativamente compleja porque a menudo contiene solicitudes anidadas. Por ejemplo, una solicitud de CMC puede contener cero o una solicitud PKCS #10 en una secuencia TaggedRequest y puede contener cero o un mensaje PKCS #7 en una secuencia TaggedContentInfo . Cada mensaje PKCS #7 anidado puede contener una solicitud CMC que, a su vez, puede contener más solicitudes. El número de niveles de anidamiento es teóricamente ilimitado, pero la entidad de certificación (CA) normalmente se configura para limitar el tamaño de una solicitud. Los atributos se pueden aplicar a la solicitud de nivel superior o a las solicitudes anidadas. Esto se describe en las secciones siguientes.
CMCData (estructura)
Una solicitud CMC contiene secuencias de estructuras TaggedAttribute, TaggedRequest y 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
TaggedAttribute (estructura)
Los atributos se incluyen en una solicitud de certificado de CMC agregándolos a la colección TaggedAttribute . Cada estructura de la colección contiene un identificador entero, un identificador de objeto ASN.1 (OID) y un conjunto de valores. Los valores posibles pueden ser cualquiera de los siguientes.
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
Si los atributos de esta estructura se aplican a una solicitud PKCS #10 anidada, el campo certReferences contendrá el BodyPartID que identifica la solicitud. Si los atributos se aplican a una solicitud CMC anidada, el campo pkiDataReference contendrá el BodyPartID de la solicitud. Actualmente, solo uno de estos campos puede ser distinto de cero. Los atributos que se pueden incluir se enumeran en el tema Atributos admitidos .
CmcAddExtensions
Esta estructura puede contener extensiones X.509 versión 3 más extensiones definidas por Microsoft. Este atributo se define mediante la interfaz IX509AttributeExtensions . Si las extensiones se aplican a una solicitud PKCS #10 anidada, el campo certReferences contendrá el BodyPartID que identifica la solicitud. Si las extensiones se aplican a una solicitud cmC anidada, el campo pkiDataReference contendrá el BodyPartID de la solicitud. Actualmente, solo uno de estos campos puede ser distinto de cero.
SenderNonce
Un valor nonce es datos binarios aleatorios o pseudoaleanos que se pueden incluir en una solicitud de certificado y una transacción de respuesta para ayudar a garantizar que la respuesta o solicitud no sea una repetición de un mensaje anterior. Para obtener más información, vea la propiedad SenderNonce .
TransactID
Se puede realizar un seguimiento de una solicitud de certificado de ida y vuelta y una transacción de respuesta mediante un identificador. El cliente genera un identificador de transacción y lo conserva hasta que la entidad de registro o certificado responde con un mensaje que completa la transacción. La respuesta incluye el identificador . Para obtener más información, vea la propiedad TransactionId .
RegInfo
Este atributo se puede usar para contener cualquier información de registro que el cliente elija poner en la solicitud de CMC. El valor del atributo es una cadena que contiene pares concatenados de nombre-valor. Para obtener más información, vea la propiedad NameValuePairs .
Temas relacionados