Share via


暗号化サービス プロバイダー関数

次の各セクションでは、暗号化プロバイダーの管理に使用できるXenroll.dllによってエクスポートされる関数を識別します。 各トピックでは、CertEnroll.dllを使用して関数を置き換える方法についても説明します。または、2 つのライブラリ間にマッピングが存在しないことを示します。

EnumAlgs

Xenroll.dllの EnumAlgs 関数は、暗号化アルゴリズム コレクションを取得します。

CertEnroll.dllを使用する場合は、次のアクションを実行して、 暗号化サービス プロバイダー (CSP) でサポートされているアルゴリズムに関する情報を取得できます。

  1. 既存の IX509Enrollment オブジェクトで Request プロパティを呼び出します。
  2. 手順 1 から返された要求に対して GetInnerRequest メソッドを呼び出して、最も内側の要求を取得します。
  3. 手順 2 から返された IX509CertificateRequest オブジェクトの QueryInterface を呼び出して、IX509CertificateRequestPkcs10 オブジェクトにキャストします。
  4. PKCS #10 要求で PrivateKey プロパティを呼び出します。
  5. 手順 4 で取得した IX509PrivateKey オブジェクトの CspInformations プロパティを呼び出します。
  6. 手順 5 で取得した ICspInformations コレクション内の特定の ICspInformation オブジェクトで CspAlgorithms プロパティを呼び出します。

enumContainersWStr

Xenroll.dllの enumContainersWStr 関数は、インデックスによってコレクションからキー コンテナーを取得します。

CertEnroll.dll ライブラリでは、この機能は直接実装されません。

enumProvidersWStr

Xenroll.dll の enumProvidersWStr 関数は、インデックスによってコレクションから CSP を取得します。

CertEnroll.dllを使用する場合は、次のアクションを実行して、暗号化コンテナーのコレクションを取得できます。

  1. 既存の IX509Enrollment オブジェクトで Request プロパティを呼び出します。
  2. 手順 1 から返された要求に対して GetInnerRequest メソッドを呼び出して、最も内側の要求を取得します。
  3. 手順 2 から返された IX509CertificateRequest オブジェクトの QueryInterface を呼び出して、IX509CertificateRequestPkcs10 オブジェクトにキャストします。
  4. PKCS #10 要求で PrivateKey プロパティを呼び出します。
  5. 手順 4 で取得した IX509PrivateKey オブジェクトの CspInformations プロパティを呼び出します。

GetAlgNameWStr

Xenroll.dllの GetAlgNameWStr 関数は 、暗号化アルゴリズムの名前を取得します。

CertEnroll.dllを使用する場合は、次のアクションを実行してアルゴリズム名を取得できます。

  1. 既存の IX509Enrollment オブジェクトで Request プロパティを呼び出します。
  2. 手順 1 から返された要求に対して GetInnerRequest メソッドを呼び出して、最も内側の要求を取得します。
  3. 手順 2 から返された IX509CertificateRequest オブジェクトの QueryInterface を呼び出して、IX509CertificateRequestPkcs10 オブジェクトにキャストします。
  4. PKCS #10 要求で PrivateKey プロパティを呼び出します。
  5. IX509PrivateKey オブジェクトの Algorithm プロパティを呼び出して、アルゴリズム オブジェクト識別子を取得します。
  6. IObjectId インターフェイスで FriendlyName プロパティを呼び出して、アルゴリズムの表示名を取得します。

getProviderTypeWStr

Xenroll.dllの getProviderTypeWStr 関数は、暗号化プロバイダーの種類を取得します。

CertEnroll.dllを使用する場合は、次のアクションを実行してプロバイダーの種類を取得できます。

  1. 既存の IX509Enrollment オブジェクトで Request プロパティを呼び出します。
  2. 手順 1 から返された要求に対して GetInnerRequest メソッドを呼び出して、最も内側の要求を取得します。
  3. 手順 2 から返された IX509CertificateRequest オブジェクトの QueryInterface を呼び出して、IX509CertificateRequestPkcs10 オブジェクトにキャストします。
  4. PKCS #10 要求で PrivateKey プロパティを呼び出します。
  5. 手順 4 で取得した IX509PrivateKey オブジェクトの ProviderType プロパティを呼び出します。

HashAlgID

Xenroll.dllの HashAlgID 関数は、要求の署名に使用されるアルゴリズムの ID を含む整数値を取得します。

CertEnroll.dllを使用する場合は、次のアクションを実行してハッシュ アルゴリズムを取得できます。

  • PKCS #10 または CMC 要求の SignatureInformation プロパティまたは PKCS #7 要求の SignerCertificate プロパティを呼び出して、IX509SignatureInformation インターフェイスを取得します。
  • 署名情報オブジェクトの HashAlgorithm プロパティを呼び出して、ハッシュ アルゴリズム オブジェクト識別子を取得します。

HashAlgorithmWStr

Xenroll.dllの HashAlgorithmWStr 関数は、要求の署名に使用されるハッシュ アルゴリズムを識別する文字列値を指定または取得します。

CertEnroll.dllを使用する場合は、次のアクションを実行してハッシュ アルゴリズムを取得できます。

  • PKCS #10 または CMC 要求の SignatureInformation プロパティまたは PKCS #7 要求の SignerCertificate プロパティを呼び出して、IX509SignatureInformation インターフェイスを取得します。
  • 署名情報オブジェクトの HashAlgorithm プロパティを呼び出して、ハッシュ アルゴリズム オブジェクト識別子を取得します。
  • 手順 2 で返された IObjectId インターフェイスの FriendlyName プロパティを呼び出して、アルゴリズムの表示名を取得します。

ProviderFlags

Xenroll.dll の ProviderFlags 関数は、CSP へのハンドルを取得するときに使用されるフラグを指定または取得します。

CertEnroll.dll ライブラリはこの関数を完全にマップしませんが、登録オブジェクトと 秘密キーから豊富なプロパティ情報を取得できます。 詳細については、 IX509Enrollment インターフェイスと IX509PrivateKey インターフェイスによって公開されるプロパティを確認してください。

ProviderNameWStr

Xenroll.dllの ProviderNameWStr 関数は、CSP の名前を指定または取得します。

CertEnroll.dllを使用する場合は、次のアクションを実行してプロバイダー名を取得できます。

  1. 既存の IX509Enrollment オブジェクトで Request プロパティを呼び出します。
  2. 手順 1 から返された要求に対して GetInnerRequest メソッドを呼び出して、最も内側の要求を取得します。
  3. 手順 2 から返された IX509CertificateRequest オブジェクトの QueryInterface を呼び出して、IX509CertificateRequestPkcs10 オブジェクトにキャストします。
  4. PKCS #10 要求で PrivateKey プロパティを呼び出します。
  5. 手順 4 で取得した IX509PrivateKey オブジェクトの ProviderName プロパティを呼び出します。

ProviderType

Xenroll.dllの ProviderType 関数は、CSP の種類を識別する整数値を指定または取得します。

CertEnroll.dllを使用する場合は、次のアクションを実行してプロバイダーの種類を取得できます。

  1. 既存の IX509Enrollment オブジェクトで Request プロパティを呼び出します。
  2. 手順 1 から返された要求に対して GetInnerRequest メソッドを呼び出して、最も内側の要求を取得します。
  3. 手順 2 から返された IX509CertificateRequest オブジェクトの QueryInterface を呼び出して、IX509CertificateRequestPkcs10 オブジェクトにキャストします。
  4. PKCS #10 要求で PrivateKey プロパティを呼び出します。
  5. 手順 4 で取得した IX509PrivateKey オブジェクトの ProviderType プロパティを呼び出します。

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

ICspAlgorithm

ICspAlgorithms

ICspInformation

ICspInformations

IX509Enrollment

IX509PrivateKey