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 证书请求
- 使用派生自 IX509Extension 接口的任何可用接口创建扩展,或使用 IX509Extension 对象直接创建自定义扩展。
- 调用 IX509CertificateRequestCmc 对象的 X509Extensions 属性以检索 IX509Extensions 集合。
- 将步骤 1 中创建的扩展添加到 IX509Extensions 集合。
- 调用 注册 以自动执行以下作:
- 从 IX509CertificateRequestCmc 对象中检索 ICryptAttributes 对象。
- 使用在步骤 2 中检索的 IX509Extensions 集合创建和初始化 IX509AttributeExtensions 对象。
- 创建 IX509Attributes 集合,并将 IX509AttributeExtensions 对象添加到该集合。
- 使用 IX509Attributes 集合初始化 ICryptAttribute 对象。
- 将 ICryptAttribute 对象添加到 ICryptAttributes 集合。
相关主题