次の方法で共有


暗号化サービス プロバイダーコンテキスト

暗号化 API を使用するアプリケーションによって呼び出される CryptoAPI関数の最初のは、CryptAcquireContext 関数です。 この関数は、CSP 内で特定のキー コンテナーの仕様を含む特定の CSP にハンドルを返します。 このキー コンテナーは、特に要求されたキー コンテナーであるか、現在ログオンしているユーザーの既定のキー コンテナーです。

CryptAcquireContext では、新しいキー コンテナーを作成することもできます。 詳細については、「例 C プログラム: キー コンテナーの作成とキーの生成 と C プログラムの例: CryptAcquireContext の使用参照してください。

暗号化サービス プロバイダー (CSP) には、名前と型の両方があります。 たとえば、オペレーティング システムに現在付属している CSP の名前は、Microsoft Base Cryptographic Provider です。 これは PROV_RSA_FULL 型プロバイダーです。 各プロバイダーの名前は一意です。プロバイダーの種類ではありません。

アプリケーションは、CSP ハンドルを取得するために CryptAcquireContext呼び出すときに、プロバイダーの種類と、必要に応じてプロバイダー名を指定します。 型と名前の両方が指定されている場合、関数は一致するプロバイダーの種類とプロバイダー名を持つ CSP を読み込みます。 この関数は CSP のハンドルを返します。CSP 内のCSP とキー コンテナーの両方にアクセスできます。

アプリケーション CryptAcquireContext を呼び出し、プロバイダーの種類を指定してもプロバイダー名を指定しない場合、関数は名前付きプロバイダーを検索します。まず、ログオン ユーザーに関連付けられている既定の名前付きプロバイダーの一覧を確認し、失敗した場合は、コンピューターに関連付けられている既定の名前付きプロバイダーの一覧から確認します。 プロバイダー名が特定されると、CryptAcquireContext 関数はそのプロバイダーの CSP を検索して読み込み、そのハンドルを返します。

CSP ハンドルの使用が完了したら、CryptReleaseContext 関数を呼び出して解放します。