Freigeben über


CMC-Attribute

In der Praxis ist die Struktur einer CMC-Anforderung, die durch die folgende Syntax dargestellt wird, relativ komplex, da sie häufig geschachtelte Anforderungen enthält. Eine CMC-Anforderung kann z. B. null oder eine PKCS #10-Anforderung in einer TaggedRequest- Sequenz enthalten, und sie kann Null- oder ein PKCS #7-Nachrichten in einer TaggedContentInfo Sequenz enthalten. Jede geschachtelte PKCS #7-Nachricht kann eine CMC-Anforderung enthalten, die wiederum weitere Anforderungen enthalten kann. Die Anzahl der Schachtelungsebenen ist theoretisch unbegrenzt, aber die Zertifizierungsstelle (CA) ist in der Regel so konfiguriert, dass die Größe einer Anforderung begrenzt wird. Attribute können auf die Anforderung der obersten Ebene oder auf die geschachtelten Anforderungen angewendet werden. Dies wird in den folgenden Abschnitten erläutert.

CMCData-Struktur

Eine CMC-Anforderung enthält Sequenzen von TaggedAttribute, TaggedRequest-und TaggedContentInfo ASN.1-Strukturen.

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-Struktur

Attribute sind in einer CMC-Zertifikatanforderung enthalten, indem sie der TaggedAttribute-Auflistung hinzugefügt werden. Jede Struktur in der Auflistung enthält eine ganzzahlige ID, einen ASN.1-Objektbezeichner (OID) und einen Satz von Werten. Die möglichen Werte können eine der folgenden Werte sein:

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

Wenn die Attribute in dieser Struktur auf eine geschachtelte PKCS #10-Anforderung angewendet werden, enthält das feld certReferences die BodyPartID-, die die Anforderung identifiziert. Wenn die Attribute für eine geschachtelte CMC-Anforderung gelten, enthält das pkiDataReference-feld die BodyPartID- der Anforderung. Derzeit kann nur eines dieser Felder ungleich Null sein. Die Attribute, die eingeschlossen werden können, werden im Thema Unterstützte Attribute aufgeführt.

CmcAddExtensions

Diese Struktur kann X.509, Version 3-Erweiterungen sowie von Microsoft definierte Erweiterungen enthalten. Dieses Attribut wird mithilfe der IX509AttributeExtensions Schnittstelle definiert. Wenn die Erweiterungen auf eine geschachtelte PKCS #10-Anforderung angewendet werden, enthält das feld certReferences die BodyPartID-, die die Anforderung identifiziert. Wenn die Erweiterungen für eine geschachtelte CMC-Anforderung gelten, enthält das pkiDataReference Feld die BodyPartID- der Anforderung. Derzeit kann nur eines dieser Felder ungleich Null sein.

SenderNonce

Eine Nonce ist zufällige oder pseudo-zufällige Binärdaten, die in eine Zertifikatanforderungs- und Antworttransaktion eingeschlossen werden können, um sicherzustellen, dass die Antwort oder Anforderung keine Wiederholung einer vorherigen Nachricht ist. Weitere Informationen finden Sie in der eigenschaft SenderNonce.

TransactID

Eine Roundtrip-Zertifikatanforderungs- und Antworttransaktion kann mithilfe eines Bezeichners nachverfolgt werden. Der Client generiert eine Transaktions-ID und behält sie bei, bis die Zertifikat- oder Registrierungsstelle mit einer Meldung antwortet, die die Transaktion abgeschlossen hat. Die Antwort enthält den Bezeichner. Weitere Informationen finden Sie in der eigenschaft TransactionId.

RegInfo

Dieses Attribut kann verwendet werden, um alle Registrierungsinformationen zu enthalten, die der Client in die CMC-Anforderung eingibt. Der Attributwert ist eine Zeichenfolge, die verkettete Name-Wert-Paare enthält. Weitere Informationen finden Sie in der NameValuePairs--Eigenschaft.

Unterstützte Attribute