Compartir a través de


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 .

Atributos compatibles