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