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 構造体を values フィールドに追加することによって要求に組み込まれます。 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 コレクションに追加します。
関連トピック