Freigeben über


CryptHashSessionKey-Funktion (wincrypt.h)

Wichtig Diese API ist veraltet. Neue und vorhandene Software sollte mit der Verwendung von Kryptografie-APIs der nächsten Generation beginnen. Microsoft kann diese API in zukünftigen Versionen entfernen.
 
Die CryptHashSessionKey-Funktion berechnet den kryptografischen Hash eines Sitzungsschlüsselobjekts . Diese Funktion kann mehrmals mit demselben Hashhandle aufgerufen werden, um den Hash mehrerer Schlüssel zu berechnen. Aufrufe von CryptHashSessionKey können mit Aufrufen von CryptHashData unterbrochen werden.

Vor dem Aufrufen dieser Funktion muss CryptCreateHash aufgerufen werden, um das Handle eines Hashobjekts zu erstellen.

Syntax

BOOL CryptHashSessionKey(
  [in] HCRYPTHASH hHash,
  [in] HCRYPTKEY  hKey,
  [in] DWORD      dwFlags
);

Parameter

[in] hHash

Ein Handle für das Hashobjekt.

[in] hKey

Ein Handle für das Schlüsselobjekt, das gehasht werden soll.

[in] dwFlags

Der folgende Flagwert wird definiert.

Wert Bedeutung
CRYPT_LITTLE_ENDIAN
0x00000001
Wenn dieses Flag festgelegt ist, werden die Bytes des Schlüssels in Little-Endian-Form gehasht. Beachten Sie, dass standardmäßig (wenn dwFlags null ist) die Bytes des Schlüssels in Big-Endian-Form gehasht werden.

Rückgabewert

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

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

Die von "NTE" vorangestellten Fehlercodes werden von dem jeweiligen CSP generiert, den Sie verwenden. 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 ungültiger Zeiger.
NTE_BAD_ALGID
Das hHash-Handle gibt einen Algorithmus an, der von diesem CSP nicht unterstützt wird.
NTE_BAD_FLAGS
Der dwFlags-Parameter ist ungleich null.
NTE_BAD_HASH
Das vom hHash-Parameter angegebene Hashobjekt ist ungültig.
NTE_BAD_HASH_STATE
Es wurde versucht, einem Hashobjekt Daten hinzuzufügen, das bereits als "fertig" gekennzeichnet ist.
NTE_BAD_KEY
Es wird ein Schlüsselhashalgorithmus verwendet, aber der Sitzungsschlüssel ist nicht mehr gültig. Dieser Fehler wird generiert, wenn der Sitzungsschlüssel vor Abschluss des Hashvorgangs zerstört wird.
NTE_BAD_UID
Der CSP-Kontext, der beim Erstellen des Hashobjekts angegeben wurde, kann nicht gefunden werden.
NTE_FAIL
Die Funktion ist auf unerwartete Weise fehlgeschlagen.

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

CryptCreateHash

CryptGenKey

CryptHashData

Hash- und digitale Signaturfunktionen