CryptoAPI 2.0 Private Schlüssel
Schannel-Anmeldeinformationen werden intern als CERT_CONTEXT-Strukturen dargestellt. Schannel sucht den privaten Schlüssel , der einem bestimmten Zertifikatkontext zugeordnet ist, mithilfe der CERT_KEY_PROV_INFO_PROP_ID-Eigenschaft des Zertifikats. Mit dieser Eigenschaft greift Schannel auf den privaten Schlüssel zu, indem die Funktion CryptAcquireContext aufgerufen wird. Weitere Informationen finden Sie unter Öffentliche/private Schlüsselpaare.
Jede Schannel-Anmeldeinformation enthält einen Verweis auf einen oder mehrere private Schlüssel, die jeweils einem bestimmten Zertifikat zugeordnet sind. Die privaten Schlüssel werden ganz unterschiedlich behandelt, je nachdem, ob die Anmeldeinformationen für einen Client oder server sind.
Private Clientschlüssel
Private Clientschlüssel werden vom verwendeten Kryptografiedienstanbieter (CSP) verwaltet. Private Clientschlüssel werden in der Regel von CSPs des Typs PROV_RSA_FULL oder PROV_RSA_SIGNATURE gespeichert.
Wenn die Clientanwendung den CryptAcquireContext-Aufruf manuell vornimmt, muss der Client vor dem Aufrufen von AcquireCredentialsHandle das Handle des CSP mithilfe der eigenschaft CERT_KEY_PROV_HANDLE_PROP_ID an den Zertifikatkontext binden. Wenn Schannel diesen Eigenschaftssatz findet, wird die eigenschaft CERT_KEY_PROV_INFO_PROP_ID nicht verwendet.
Private Serverschlüssel
Private Serverschlüssel werden von einem der folgenden CSPs gespeichert:
- PROV_RSA_SCHANNEL
- PROV_DH_SCHANNEL
- PROV_FORTEZZA CSP
Die Wahl des CSP hängt vom ausgewählten Schlüsselaustauschalgorithmus ab. Private Serverschlüssel müssen vom Typ AT_KEYEXCHANGE sein.