Attributs CMC
Dans la pratique, la structure d’une requête CMC, illustrée par la syntaxe suivante, est relativement complexe, car elle contient souvent des requêtes imbriquées. Par exemple, une requête CMC peut contenir zéro ou une demande PKCS #10 dans une séquence TaggedRequest , et elle peut contenir zéro ou un message PKCS #7 dans une séquence TaggedContentInfo . Chaque message PKCS #7 imbriqué peut contenir une requête CMC qui peut, à son tour, contenir davantage de requêtes. Le nombre de niveaux d’imbrication est théoriquement illimité, mais l’autorité de certification est généralement configurée pour limiter la taille d’une demande. Les attributs peuvent être appliqués à la requête de niveau supérieur ou aux requêtes imbriquées. Cela est abordé dans les sections suivantes.
CMCData Structure
Une requête CMC contient des séquences de structures TaggedAttribute, TaggedRequest et 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 Structure
Les attributs sont inclus dans une demande de certificat CMC en les ajoutant à la collection TaggedAttribute . Chaque structure de la collection contient un ID entier, un identificateur d’objet ASN.1 (OID) et un ensemble de valeurs. Les valeurs possibles peuvent être l’une des suivantes.
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 les attributs de cette structure s’appliquent à une requête PKCS #10 imbriquée, le champ certReferences contient le BodyPartID qui identifie la demande. Si les attributs s’appliquent à une requête CMC imbriquée, le champ pkiDataReference contient le BodyPartID de la demande. Actuellement, un seul de ces champs peut être différent de zéro. Les attributs qui peuvent être inclus sont répertoriés dans la rubrique Attributs pris en charge .
CmcAddExtensions
Cette structure peut contenir des extensions X.509 version 3 plus des extensions définies par Microsoft. Cet attribut est défini à l’aide de l’interface IX509AttributeExtensions . Si les extensions s’appliquent à une requête PKCS #10 imbriquée, le champ certReferences contient le BodyPartID qui identifie la demande. Si les extensions s’appliquent à une requête CMC imbriquée, le champ pkiDataReference contient le BodyPartID de la demande. Actuellement, un seul de ces champs peut être différent de zéro.
SenderNonce
Un nonce est des données binaires aléatoires ou pseudo-aléatoires qui peuvent être incluses dans une demande de certificat et une transaction de réponse pour garantir que la réponse ou la demande n’est pas une répétition d’un message précédent. Pour plus d’informations, consultez la propriété SenderNonce .
TransactID
Une demande de certificat aller-retour et une transaction de réponse peuvent être suivies à l’aide d’un identificateur. Le client génère un ID de transaction et le conserve jusqu’à ce que l’autorité de certificat ou d’inscription réponde par un message qui termine la transaction. La réponse inclut l’identificateur. Pour plus d’informations, consultez la propriété TransactionId .
RegInfo
Cet attribut peut être utilisé pour contenir toutes les informations d’inscription que le client choisit de placer dans la demande CMC. La valeur de l’attribut est une chaîne qui contient des paires nom-valeur concaténées. Pour plus d’informations, consultez la propriété NameValuePairs .
Rubriques connexes