CMC 扩展

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

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 属性

扩展