CMC 屬性

實際上,由下列語法顯示的 CMC 要求結構相當複雜,因為它通常包含巢狀要求。 例如,CMC 要求可以在 TaggedRequest 序列中包含零或一個 PKCS #10 要求,而且它可以在 TaggedContentInfo 序列中包含零或一個 PKCS #7 訊息。 每個巢狀 PKCS #7 訊息都可以包含 CMC 要求,進而包含更多要求。 巢狀層級的數目理論上是無限制的,但憑證授權單位單位 (CA) 通常會設定為限制要求的大小。 屬性可以套用至最上層要求或巢狀要求。 以下各節將討論這一點。

CMCData 結構

CMC 要求包含 TagedAttributeTaggedRequestTaggedContentInfo 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

TagedAttribute 結構

屬性會加入 至 TaggedAttribute 集合,以包含在 CMC 憑證要求中。 集合中的每個結構都包含整數識別碼、ASN.1 物件識別碼 (OID) ,以及一組值。 可能的值可以是下列任一項。

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

如果這個結構中的屬性套用至巢狀 PKCS #10 要求, certReferences 欄位將會包含可識別要求的 BodyPartID 。 如果屬性套用至巢狀 CMC 要求, pkiDataReference 欄位將會包含要求的 BodyPartID 。 目前,只有其中一個欄位可以是非零。 可包含的屬性會列在 支援的屬性 主題中。

CmcAddExtensions

這個結構可以包含 X.509 第 3 版延伸模組,以及 Microsoft 所定義的延伸模組。 此屬性是使用 IX509AttributeExtensions 介面來定義。 如果延伸模組適用于巢狀 PKCS #10 要求, certReferences 欄位將會包含可識別要求的 BodyPartID 。 如果延伸模組適用于巢狀 CMC 要求, pkiDataReference 欄位將會包含要求的 BodyPartID 。 目前,只有其中一個欄位可以是非零。

SenderNonce

Nonce 是隨機或虛擬隨機二進位資料,可以包含在憑證要求和回應交易中,以協助確保回應或要求不是先前訊息的重複。 如需詳細資訊,請參閱 SenderNonce 屬性。

TransactID

您可以使用識別碼來追蹤往返憑證要求和回應交易。 用戶端會產生交易識別碼,並保留它,直到憑證或註冊授權單位回應完成交易的訊息為止。 回應包含識別碼。 如需詳細資訊,請參閱 TransactionId 屬性。

RegInfo

這個屬性可用來包含用戶端選擇放入 CMC 要求的任何註冊資訊。 屬性值是包含串連名稱/值組的字串。 如需詳細資訊,請參閱 NameValuePairs 屬性。

支援的屬性