次の方法で共有


CryptFindCertificateKeyProvInfo 関数 (wincrypt.h)

CryptFindCertificateKeyProvInfo 関数は、暗号化プロバイダーとそのコンテナーを列挙して、証明書の公開キーに対応する秘密キーを検索します。

構文

BOOL CryptFindCertificateKeyProvInfo(
  [in] PCCERT_CONTEXT pCert,
  [in] DWORD          dwFlags,
  [in] void           *pvReserved
);

パラメーター

[in] pCert

公開キー情報をエクスポートするときに使用する証明書の CERT_CONTEXT 構造へのポインター。

[in] dwFlags

この関数の動作を変更するフラグのセット。 0 または次のいずれかの値を指定できます。

意味
CRYPT_FIND_USER_KEYSET_FLAG
検索をユーザー コンテナーに制限します。 既定では、ユーザー コンテナーとマシン コンテナーの両方を検索します。
CRYPT_FIND_MACHINE_KEYSET_FLAG
検索をマシン コンテナーに制限します。 既定では、ユーザー コンテナーとマシン コンテナーの両方を検索します。
CRYPT_FIND_SILENT_KEYSET_FLAG
アプリケーションは、このコンテキストのユーザー インターフェイス (UI) を CSP に表示しないように要求します。 CSP が操作する UI を表示する必要がある場合、呼び出しは失敗し、NTE_SILENT_CONTEXTエラー コードが最後のエラーとして設定されます。
 

次のフラグは、キーを取得するために使用されるテクノロジを決定します。 これらのフラグが存在しない場合、この関数は CryptoAPI を使用してキーの取得のみを試みます。

Windows Server 2003 および Windows XP: これらのフラグはサポートされていません。

意味
CRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG
この関数は、CryptoAPI を使用してキーの取得を試みます。 失敗した場合、この関数は Cryptography API: Next Generation (CNG) を使用してキーの取得を試みます。

CNG を使用してキーを取得する場合、証明書の CERT_KEY_PROV_INFO_PROP_ID プロパティは 0 に設定されます。

CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG
この関数は、CNG を使用してキーの取得のみを試み、CryptoAPI を使用してキーを取得しません。

CNG を使用してキーを取得する場合、証明書の CERT_KEY_PROV_INFO_PROP_ID プロパティは 0 に設定されます。

CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG
この関数は、CNG を使用してキーの取得を試みます。 これが失敗した場合、この関数は CryptoAPI を使用してキーの取得を試みます。

CNG を使用してキーを取得する場合、証明書の CERT_KEY_PROV_INFO_PROP_ID プロパティは 0 に設定されます。

[in] pvReserved

将来使用するために予約されており、 NULL である必要があります。

戻り値

関数 が、検索された コンテナー内の証明書の公開キーに対応する秘密キーを見つける場合は TRUE。 関数 がコンテナーまたはコンテナー内の秘密キーを検索できない場合は FALSE。

GetLastError は 次のエラーを返します。

リターン コード 説明
NTE_NO_KEY
コンテナーが見つかりません。

注釈

この関数は、暗号化プロバイダーとそのコンテナーを列挙して、証明書の公開キーに対応する秘密キーを検索 します。 一致する場合、関数は証明書の CERT_KEY_PROV_INFO_PROP_ID プロパティを更新します。 CERT_KEY_PROV_INFO_PROP_IDが既に設定されている場合は、プロバイダーの公開キーと一致するかどうかを確認します。 一致する場合、関数は前述の列挙をスキップします。

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー wincrypt.h
Library Crypt32.lib
[DLL] Crypt32.dll

こちらもご覧ください

データ管理関数