次の方法で共有


CryptoAPI 2.0 秘密キー

Schannel 資格情報は、内部的に CERT_CONTEXT 構造体として表されます。 Schannel は、証明書の CERT_KEY_PROV_INFO_PROP_ID プロパティを使用して、特定の証明書コンテキストに関連付けられている 秘密キー を検索します。 このプロパティを使用して、Schannel は CryptAcquireContext 関数を呼び出して秘密キーにアクセスします。 詳細については、「 公開キーと秘密キーのペア」を参照してください。

すべての Schannel 資格情報には、特定の証明書に関連付けられている 1 つ以上の秘密キーへの参照が含まれます。 秘密キーは、資格情報がクライアント用かサーバー用かによって、まったく異なる方法で処理されます。

クライアントの秘密キー

クライアント 秘密キー は、使用中の 暗号化サービス プロバイダー (CSP) によって管理されます。 クライアント秘密キーは、通常、PROV_RSA_FULL型または PROV_RSA_SIGNATURE 型の CSP によって格納されます。

クライアント アプリケーションが CryptAcquireContext 呼び出しを手動で行う場合、 AcquireCredentialsHandle を呼び出す前に、クライアントは CERT_KEY_PROV_HANDLE_PROP_ID プロパティを使用して CSP のハンドルを証明書コンテキストにバインドする必要があります。 Schannel でこのプロパティ セットが見つかると、CERT_KEY_PROV_INFO_PROP_ID プロパティは使用されません。

サーバーの秘密キー

サーバーの秘密キーは、次のいずれかの CSP によって格納されます。

  • PROV_RSA_SCHANNEL
  • PROV_DH_SCHANNEL
  • PROV_FORTEZZA CSP

CSP の選択は、選択した キー交換アルゴリズムによって異なります。 サーバーの秘密キーの種類は AT_KEYEXCHANGE である必要があります。