Share via


CryptFindCertificateKeyProvInfo-Funktion (wincrypt.h)

Die CryptFindCertificateKeyProvInfo-Funktion listet die Kryptografieanbieter und ihre Container auf, um den privaten Schlüssel zu finden, der dem öffentlichen Schlüssel des Zertifikats entspricht.

Syntax

BOOL CryptFindCertificateKeyProvInfo(
  [in] PCCERT_CONTEXT pCert,
  [in] DWORD          dwFlags,
  [in] void           *pvReserved
);

Parameter

[in] pCert

Ein Zeiger auf die CERT_CONTEXT Struktur des Zertifikats, das beim Exportieren von Informationen mit öffentlichen Schlüsseln verwendet werden soll.

[in] dwFlags

Ein Satz von Flags, die das Verhalten dieser Funktion ändern. Dies kann null oder einer der folgenden Werte sein.

Wert Bedeutung
CRYPT_FIND_USER_KEYSET_FLAG
Schränkt die Suche auf den Benutzercontainer ein. Die Standardeinstellung besteht darin, sowohl den Benutzer- als auch den Computercontainer zu durchsuchen.
CRYPT_FIND_MACHINE_KEYSET_FLAG
Schränkt die Suche auf den Computercontainer ein. Die Standardeinstellung besteht darin, sowohl den Benutzer- als auch den Computercontainer zu durchsuchen.
CRYPT_FIND_SILENT_KEYSET_FLAG
Die Anwendung fordert an, dass der CSP keine Benutzeroberfläche (UI) für diesen Kontext anzeigt. Wenn der CSP die Benutzeroberfläche für den Betrieb anzeigen muss, schlägt der Aufruf fehl, und der NTE_SILENT_CONTEXT Fehlercode wird als letzter Fehler festgelegt.
 

Die folgenden Flags bestimmen, welche Technologie zum Abrufen des Schlüssels verwendet wird. Wenn keines dieser Flags vorhanden ist, versucht diese Funktion nur, den Schlüssel mithilfe von CryptoAPI abzurufen.

Windows Server 2003 und Windows XP: Diese Flags werden nicht unterstützt.

Wert Bedeutung
CRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG
Diese Funktion versucht, den Schlüssel mithilfe von CryptoAPI abzurufen. Wenn dies fehlschlägt, versucht diese Funktion, den Schlüssel mithilfe der Kryptografie-API: Nächste Generation (CNG) abzurufen.

Die CERT_KEY_PROV_INFO_PROP_ID -Eigenschaft des Zertifikats wird auf null festgelegt, wenn CNG zum Abrufen des Schlüssels verwendet wird.

CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG
Diese Funktion versucht nur, den Schlüssel mithilfe von CNG abzurufen, und verwendet nicht CryptoAPI zum Abrufen des Schlüssels.

Die CERT_KEY_PROV_INFO_PROP_ID -Eigenschaft des Zertifikats wird auf null festgelegt, wenn CNG zum Abrufen des Schlüssels verwendet wird.

CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG
Diese Funktion versucht, den Schlüssel mithilfe von CNG abzurufen. Wenn dies fehlschlägt, versucht diese Funktion, den Schlüssel mithilfe von CryptoAPI abzurufen.

Die CERT_KEY_PROV_INFO_PROP_ID -Eigenschaft des Zertifikats wird auf null festgelegt, wenn CNG zum Abrufen des Schlüssels verwendet wird.

[in] pvReserved

Für die zukünftige Verwendung reserviert und muss NULL sein.

Rückgabewert

TRUE , wenn die Funktion einen privaten Schlüssel findet, der dem öffentlichen Schlüssel des Zertifikats in einem durchsuchten Container entspricht; FALSE , wenn die Funktion einen Container oder einen privaten Schlüssel in einem Container nicht findet.

GetLastError gibt den folgenden Fehler zurück:

Rückgabecode Beschreibung
NTE_NO_KEY
Kein Container gefunden.

Hinweise

Diese Funktion listet die Kryptografieanbieter und ihre Container auf, um den privaten Schlüssel zu finden, der dem öffentlichen Schlüssel des Zertifikats entspricht. Bei einer Übereinstimmung aktualisiert die Funktion die CERT_KEY_PROV_INFO_PROP_ID Eigenschaft des Zertifikats. Wenn die CERT_KEY_PROV_INFO_PROP_ID bereits festgelegt ist, wird überprüft, ob sie mit dem öffentlichen Schlüssel des Anbieters übereinstimmt. Bei einer Übereinstimmung überspringt die Funktion die zuvor erwähnte Enumeration.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile wincrypt.h
Bibliothek Crypt32.lib
DLL Crypt32.dll

Weitere Informationen

Datenverwaltung-Funktionen