CryptGetUserKey-Funktion (wincrypt.h)

Wichtig Diese API ist veraltet. Neue und vorhandene Software sollten mit der Verwendung von Kryptografie-APIs der nächsten Generation beginnen. Microsoft kann diese API in zukünftigen Releases entfernen.
 
Die CryptGetUserKey-Funktion ruft ein Handle eines der beiden öffentlichen/privaten Schlüsselpaare eines Benutzers ab. Diese Funktion wird nur vom Besitzer der öffentlichen/privaten Schlüsselpaare und nur verwendet, wenn das Handle eines Kryptografiedienstanbieters (Cryptographic Service Provider , CSP) und des zugehörigen Schlüsselcontainers verfügbar ist. Wenn das CSP-Handle nicht verfügbar ist und das Zertifikat des Benutzers ist, verwenden Sie CryptAcquireCertificatePrivateKey.

Syntax

BOOL CryptGetUserKey(
  [in]  HCRYPTPROV hProv,
  [in]  DWORD      dwKeySpec,
  [out] HCRYPTKEY  *phUserKey
);

Parameter

[in] hProv

HCRYPTPROV-Handle eines Kryptografiedienstanbieters (CSP), der durch einen Aufruf von CryptAcquireContext erstellt wurde.

[in] dwKeySpec

Gibt den privaten Schlüssel an, der aus dem Schlüsselcontainer verwendet werden soll. Es kann AT_KEYEXCHANGE oder AT_SIGNATURE sein.

Darüber hinaus ermöglichen einige Anbieter den Zugriff auf andere benutzerspezifische Schlüssel über diese Funktion. Ausführliche Informationen finden Sie in der Dokumentation zum jeweiligen Anbieter.

[out] phUserKey

Ein Zeiger auf das HCRYPTKEY-Handle der abgerufenen Schlüssel. Wenn Sie die Verwendung des Schlüssels abgeschlossen haben, löschen Sie das Handle, indem Sie die Funktion CryptDestroyKey aufrufen.

Rückgabewert

Wenn die Funktion erfolgreich ist, ist der Rückgabewert nonzero (TRUE).

Wenn die Funktion fehlschlägt, ist der Rückgabewert 0 (FALSE). Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten.

Die von "NTE" vorangestellten Fehlercodes werden vom verwendeten CSP generiert. Es folgen einige mögliche Fehlercodes.

Rückgabecode Beschreibung
ERROR_INVALID_HANDLE
Einer der Parameter gibt ein ungültiges Handle an.
ERROR_INVALID_PARAMETER
Einer der Parameter enthält einen ungültigen Wert. Dies ist in den meisten Fällen ein nicht gültiger Zeiger.
NTE_BAD_KEY
Der dwKeySpec-Parameter enthält einen wert, der ungültig ist.
NTE_BAD_UID
Der hProv-Parameter enthält kein gültiges Kontexthandle.
NTE_NO_KEY
Der vom dwKeySpec-Parameter angeforderte Schlüssel ist nicht vorhanden.

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 Advapi32.lib
DLL Advapi32.dll

Weitere Informationen

CryptAcquireContext

CryptDestroyKey

CryptGenKey

Schlüsselgenerierung und Exchange-Funktionen