拡張関数

X.509バージョン 3 の証明書形式は、キーの使用法、証明書のポリシーと制約、代替名の形式などについての拡張情報を提供するために証明書に追加できる複数の拡張機能を識別します。

CertEnroll.dll、証明書拡張機能を管理するために次のインターフェイスを実装します。

次の各セクションでは、証明書拡張機能を管理するために、Xenroll.dll関数について説明します。 各セクションでは、関数を置き換CertEnroll.dllを使用する方法、または 2 つのライブラリ間にマッピングが存在しない場合も説明します。

AddCertTypeToRequestWStr

AddCertTypeToRequestWStr 関数はXenroll.dll名前で証明書テンプレートを要求に追加します。

CertEnroll.dll を使用して、テンプレートを証明書要求に組み込むのが推奨される方法は、PKCS 10 または [*PKCS ) 要求オブジェクトで InitializeFromTemplateName メソッドを使用するか、CMC 要求で # InitializeFromInnerRequestTemplateName メソッドを使用する方法です。

クライアントで特定のテンプレートを使用できないが、証明機関 (CA) によって理解される 必要がある場合は 、IX509ExtensionTemplateNameインターフェイスを使用してバージョン 1 テンプレートを追加するか 、IX509ExtensionTemplateインターフェイスを使用して証明書要求にバージョン 2 テンプレートを追加できます。 たとえば、バージョン 1 のテンプレートを追加するには、次の操作を実行します。

  1. IX509Extensions オブジェクトを作成します。
  2. IX509ExtensionTemplateNameオブジェクトを作成し、テンプレート名を指定して InitializeEncodeメソッドを呼び出します。
  3. Add メソッドを呼び出して、作成された拡張機能を IX509Extensions コレクション に追加 します。
  4. IX509AttributeExtensionsオブジェクトを作成し、入力時に IX509Extensionsコレクションを指定して InitializeEncodeメソッドを呼び出します。
  5. 既存の IX509CertificateRequestPkcs10または IX509CertificateRequestCmc要求オブジェクトで CryptAttributesプロパティを呼び出して 、ICryptAttributesコレクション オブジェクトを取得します。

AddCertTypeToRequestWStrEx

Xenroll.dll の AddCertTypeToRequestWStrEx 関数は、名前、オブジェクト識別子、およびバージョンで要求に証明書テンプレートを追加します。

要求にテンプレート情報を組み込CertEnroll.dll方法については、「AddCertTypeToRequestWStr」を参照してください。

AddExtensionsToRequest

AddExtensionsToRequest 関数はXenroll.dllに拡張機能のコレクションを追加します。

このCertEnroll.dll、CMC または PKCS 10 要求の属性コレクションに拡張機能 # が追加されます。 拡張機能を追加するには、次の操作を実行します。

  1. IX509Extensions オブジェクトを作成します。
  2. IX509Extensionオブジェクトを作成し 、Initializeメソッドを呼び出してオブジェクト識別子と拡張値から拡張機能を作成するか、前に示したインターフェイスのいずれかを使用して、より一般的な拡張機能の 1 つを定義します。
  3. 前の手順で作成した新しい拡張機能を 、Addメソッドを呼び出して IX509Extensionsコレクションに追加します。

addExtensionToRequestWStr

addExtensionToRequestWStr 関数Xenroll.dll要求に特定の拡張機能を追加します。

このCertEnroll.dll、拡張コレクションを CMC または PKCS 10 要求の属性コレクションに追加する前に、特定の拡張機能を定義して拡張機能コレクションに追加する必要があります。 # 詳細については、上記の AddExtensionsToRequest に関する説明を参照してください。

EnableSMIMECapabilities

Xenroll.dll の EnableSMIMECapabilities 関数は 、SMIMECapabilities 拡張機能を要求に追加するかどうかを示すブール値を指定または取得します。

IX509CertificateRequestPkcs10オブジェクトの SmimeCapabilitiesプロパティを呼び出して、エンコード前に IX509ExtensionSmimeCapabilitiesオブジェクトを要求に自動的に追加できます。

IncludeSubjectKeyID

Xenroll.dll の IncludeSubjectKeyID 関数は 、SubjectKeyIdentifier 拡張機能を要求に追加するかどうかを示すブール値を指定または取得します。

既定では 、IX509CertificateRequestPkcs10要求オブジェクトが初期化されると 、SubjectKeyIdentifier 拡張機能が作成されます。 SuppressOids プロパティを呼び出すことによって、この 動作をオーバーライド できます。

公開キー プライベート キーのペアがある場合は、次の操作を実行して、CertEnroll.dll の IX509ExtensionSubjectKeyIdentifier インターフェイスを使用して、証明書要求に SubjectKeyIdentifier 拡張機能を追加することもできます。

  1. IX509Extensions オブジェクトを作成します。
  2. IX509ExtensionSubjectKeyIdentifierオブジェクトを作成し、識別子を含む文字列を指定して InitializeEncodeメソッドを呼び出します。 通常、これは CA 署名証明書に含まれる公開キーの 20バイトの SHA-1 ハッシュです。
  3. Add メソッドを呼び出して、作成された拡張機能を IX509Extensions コレクション に追加 します。
  4. IX509AttributeExtensionsオブジェクトを作成し、入力時に IX509Extensionsコレクションを指定して InitializeEncodeメソッドを呼び出します。
  5. 既存の IX509CertificateRequestPkcs10または IX509CertificateRequestCmc要求オブジェクトで CryptAttributesプロパティを呼び出して 、ICryptAttributesコレクション オブジェクトを取得します。

resetExtensions

resetExtensions 関数Xenroll.dll要求から拡張コレクションを削除します。

CertEnroll.dll を使用してインデックス番号で要求から拡張機能を削除するには 、IX509Extensionsコレクションで Removeメソッドを呼び出します。 要求からすべての属性を削除するには、Clear メソッドを 呼び出 します。

マッピング Xenroll.dllへのCertEnroll.dll

ICryptAttributes

IX509Extension

IX509Extensions