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 である必要があります。