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 憑證要求
- 使用任何衍生自 IX509Extension 介面的可用介面,或使用 IX509Extension 物件直接建立自訂延伸模組來建立延伸模組。
- 在IX509CertificateRequestCmc物件上呼叫X509Extensions屬性,以擷取IX509Extensions集合。
- 將步驟 1 中建立的延伸模組新增至 IX509Extensions 集合。
- 呼叫 Enroll 以自動執行下列動作:
- 從IX509CertificateRequestCmc物件擷取ICryptAttributes物件。
- 使用步驟 2 中擷取的IX509Extensions集合,建立和初始化IX509AttributeExtensions物件。
- 建立 IX509Attributes 集合,並將 IX509AttributeExtensions 物件新增至該集合。
- 使用 IX509Attributes 集合來初始化 ICryptAttribute 物件。
- 將 ICryptAttribute 物件新增至 ICryptAttributes 集合。
相關主題