CMC 扩展

扩展包含在 CMC 请求中,方法是将它们添加到 TaggedAttributes 结构,如以下 ASN.1 语法示例所示。 有关详细信息,请参阅 属性 主题。

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 集合中的每个结构都包含一个整数 ID、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. 调用 注册 以自动执行以下作:

属性

属性体系结构

CMC 属性

扩展