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. Beispielsweise kann eine CMC-Anforderung null oder eine PKCS #10-Anforderung in einer TaggedRequest-Sequenz enthalten und null oder eine PKCS #7-Meldungen 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 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 der ASN.1-Strukturen TaggedAttribute, TaggedRequest und TaggedContentInfo .
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 werden 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 einer der folgenden 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 für eine geschachtelte PKCS #10-Anforderung gelten, enthält das Feld certReferences die BodyPartID , die die Anforderung identifiziert. Wenn die Attribute für eine geschachtelte CMC-Anforderung gelten, enthält das Feld pkiDataReference die BodyPartID der Anforderung. Derzeit kann nur eines dieser Felder nichtzero sein. Die Attribute, die eingeschlossen werden können, sind im Thema Unterstützte Attribute aufgeführt.
CmcAddExtensions
Diese Struktur kann X.509 Version 3-Erweiterungen plus von Microsoft definierte Erweiterungen enthalten. Dieses Attribut wird mithilfe der IX509AttributeExtensions-Schnittstelle definiert. Wenn die Erweiterungen für eine geschachtelte PKCS #10-Anforderung gelten, enthält das Feld certReferences die BodyPartID , die die Anforderung identifiziert. Wenn die Erweiterungen für eine geschachtelte CMC-Anforderung gelten, enthält das Feld pkiDataReference die BodyPartID der Anforderung. Derzeit kann nur eines dieser Felder nichtzero sein.
SenderNonce
Eine Nonce sind zufällige oder pseudo-zufällige Binärdaten, die in eine Zertifikatanforderungs- und Antworttransaktion einbezogen werden können, um sicherzustellen, dass die Antwort oder Anforderung keine Wiederholung einer vorherigen Nachricht ist. Weitere Informationen finden Sie in der SenderNonce-Eigenschaft .
TransactID
Eine Roundtrip-Zertifikatanforderung und -antworttransaktion können mithilfe eines Bezeichners nachverfolgt werden. Der Client generiert eine Transaktions-ID und behält sie bei, bis das Zertifikat oder die Registrierungsstelle mit einer Nachricht antwortet, die die Transaktion abgeschlossen hat. Die Antwort enthält den Bezeichner. Weitere Informationen finden Sie in der TransactionId-Eigenschaft .
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 .
Zugehörige Themen