CMC 擴充功能

延伸模組包含在 CMC 要求中,方法是將它們新增至下列 ASN.1 語法範例所示的 TaggedAttributes 結構。 如需詳細資訊,請參閱 屬性 主題。

CmcData ::= SEQUENCE 
{
   controlSequence         ControlSequence,
   reqSequence             ReqSequence,
   cmsSequence             CmsSequence,
   otherMsgSequence        OtherMsgSequence
}


ControlSequence  ::=    SEQUENCE OF TaggedAttribute

TaggedAttribute ::= SEQUENCE 
{
   bodyPartID              BodyPartID,
   type                    EncodedObjectID,
   values                  AttributeSetValue
}

BodyPartID ::= INTEGER (0..4294967295)
EncodedObjectID ::= OBJECT IDENTIFIER
AttributeSetValue ::= SET OF ANY

TaggedAttributes集合中的每個結構都包含整數識別碼、ASN.1 物件識別碼 (OID) ,以及一組值。 延伸模組會藉由將 CmcAddExtensions 結構新增至 欄位,以併入要求中。 ASN.1 結構語法如下列範例所示。 物件識別碼 XCN_OID_CMC_ADD_EXTENSIONS (1.3.6.1.5.5.7.7.8) 。

CmcAddExtensions ::= SEQUENCE 
{
   pkiDataReference        BodyPartID,
   certReferences          BodyPartIDSequence,
   extensions              Extensions
}

Extensions ::= SEQUENCE OF Extension

Extension ::= SEQUENCE 
{
   extnId              EncodedObjectID,
   critical            BOOLEAN DEFAULT FALSE,
   extnValue           OCTETSTRING
}

下列程式討論如何使用憑證註冊 API 將擴充功能新增至 CMC 憑證要求。

若要使用憑證註冊 API 將擴充功能新增至 CMC 憑證要求

  1. 使用任何衍生自 IX509Extension 介面的可用介面,或使用 IX509Extension 物件直接建立自訂延伸模組來建立延伸模組。
  2. IX509CertificateRequestCmc物件上呼叫X509Extensions屬性,以擷取IX509Extensions集合。
  3. 將步驟 1 中建立的延伸模組新增至 IX509Extensions 集合。
  4. 呼叫 Enroll 以自動執行下列動作:

屬性

屬性架構

CMC 屬性

擴充功能