属性関数

証明書要求に属性を追加して 、証明機関 (CA) に証明書の作成時と発行時に使用できる追加情報を提供できます。

CertEnroll.dllでは、次のインターフェイスを実装して属性と属性コレクションを定義します。

次のセクションでは、暗号化属性を証明書要求に関連付けるXenroll.dllによってエクスポートされる関数を特定し、CertEnroll.dllを使用して関数を置き換える方法、または 2 つのライブラリ間にマッピングが存在しないことを示す方法について説明します。

addAttributeToRequestWStr

Xenroll.dllの addAttributeToRequestWStr 関数は、証明書要求に属性を追加します。

一般に、CertEnroll.dllで実装されているオブジェクトを使用して要求に属性を追加するには、次のアクションを実行できます。

  1. IX509Attributes コレクション オブジェクトを作成します。
  2. IX509Attribute オブジェクトを作成し、Initialize メソッドを呼び出してオブジェクト識別子と属性値から属性を作成するか、前述のインターフェイスのいずれかを使用して、より一般的な属性の 1 つを定義します。
  3. 前の手順で作成した新しい各属性を、Add メソッドを使用して IX509Attributes コレクションに追加します。
  4. ICryptAttribute オブジェクトを作成し、InitializeFromValues メソッドを呼び出し、入力時に IX509Attributes コレクションを指定して初期化します。
  5. 既存の IX509CertificateRequestPkcs10 または IX509CertificateRequestCmc 要求オブジェクトで CryptAttributes プロパティを呼び出して、ICryptAttributes コレクション オブジェクトを取得します。
  6. ICryptAttribute オブジェクトを ICryptAttributes コレクションに追加します。

AddAuthenticatedAttributesToPKCS7Request

認証された属性は、署名によって署名され、署名に追加される名前と値のペアです。 Xenroll.dllの AddAuthenticatedAttributesToPKCS7Request 関数は、 PKCS #7 要求に認証済み属性の配列を追加します。

addAttributeToRequestWStr 関数で前述したように、CertEnroll.dllを使用して、属性のコレクションを簡単に定義し、証明書要求に追加できます。 ただし、属性を認証するかどうかを選択することはできません。 登録プロセスによって、この決定が自動的に行われます。

addNameValuePairToRequestWStr

Xenroll.dllの addNameValuePairToRequestWStr 関数は、認証されていない名前と値のペアを要求に追加します。

CertEnroll.dllの IX509NameValuePair インターフェイスを使用して名前と値のペアを定義し、次のアクションを実行して名前と値のペアのコレクションを CMC 要求オブジェクトに追加できます。

  1. IX509CertificateRequestCmc オブジェクトを作成して初期化します。 初期化プロセスでは、空の IX509NameValuePairs コレクションが 作成されます。
  2. コレクションを取得するには、既存の CMC 要求オブジェクトで NameValuePairs プロパティを呼び出します。
  3. IX509NameValuePair オブジェクトを作成して初期化します。
  4. Add メソッドを呼び出して、新しい名前と値のペアをそれぞれ IX509NameValuePairs コレクションに 追加 します。

登録プロセスでは、名前と値のペアのコレクションが CMC 要求の TaggedAttribute 構造体に配置されます。

AddNameValuePairToSignatureWStr

Xenroll.dllの AddNameValuePairToSignatureWStr 関数は、認証済みの名前と値のペアを要求に追加します。 これは通常、登録の代理 (EOBO) 要求で要求者名を指定するために使用されます。

CertEnroll.dllでは、 RequesterName プロパティを使用して、EOBO 要求の名前を指定します。

ClientId

Xenroll.dllの ClientId 関数は、 ClientId 属性を指定または取得します。

この属性を CMC または PKCS #10 要求に追加するには、CertEnroll.dllの ClientId プロパティを使用します。

RenewalCertificate

Xenroll.dllの RenewalCertificate 関数は、 RenewalCertificate 属性を指定または取得します。

CertEnroll.dllでは、PKCS #7 または PKCS) オブジェクトで InitializeFromCertificate を呼び出すと、自動的に作成されます。

resetAttributes

Xenroll.dllの resetAttributes 関数は、要求から属性コレクションを削除します。

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

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

ICryptAttribute

ICryptAttributes

IX509Attribute

IX509Attributes

IX509NameValuePair

IX509NameValuePairs