BCryptFinishHash-Funktion (bcrypt.h)

Die BCryptFinishHash-Funktion ruft den Hash- oder Nachrichtenauthentifizierungscodewert (MAC) für die daten ab, die von früheren Aufrufen an BCryptHashData gesammelt wurden.

Syntax

NTSTATUS BCryptFinishHash(
  [in, out] BCRYPT_HASH_HANDLE hHash,
  [out]     PUCHAR             pbOutput,
  [in]      ULONG              cbOutput,
  [in]      ULONG              dwFlags
);

Parameter

[in, out] hHash

Das Handle des Hash- oder MAC-Objekts, das zum Berechnen des Hashs oder MAC verwendet werden soll. Dieses Handle wird durch Aufrufen der BCryptCreateHash-Funktion abgerufen. Nachdem diese Funktion aufgerufen wurde, kann der an diese Funktion übergebene Hashpunkt nicht erneut verwendet werden, außer in einem Aufruf von BCryptDestroyHash.

[out] pbOutput

Ein Zeiger auf einen Puffer, der den Hash- oder MAC-Wert empfängt. Der cbOutput-Parameter enthält die Größe dieses Puffers.

[in] cbOutput

Die Größe des pbOutput-Puffers in Bytes. Diese Größe muss genau mit der Größe des Hash- oder MAC-Werts übereinstimmen.

Die Größe kann durch Aufrufen der BCryptGetProperty-Funktion abgerufen werden, um die BCRYPT_HASH_LENGTH Eigenschaft abzurufen. Dadurch wird die Größe des Hash- oder MAC-Werts für den angegebenen Algorithmus bereitgestellt.

[in] dwFlags

Eine Reihe von Flags, die das Verhalten dieser Funktion ändern. Derzeit sind keine Flags definiert, sodass dieser Parameter null sein sollte.

Rückgabewert

Gibt einen Statuscode zurück, der den Erfolg oder Fehler der Funktion angibt.

Mögliche Rückgabecodes enthalten, sind jedoch nicht beschränkt auf Folgendes.

Rückgabecode Beschreibung
STATUS_SUCCESS
Die Funktion war erfolgreich.
STATUS_INVALID_HANDLE
Das Hashhandle im hHash-Parameter ist ungültig. Nachdem die BCryptFinishHash-Funktion für einen Hash-Handle aufgerufen wurde, kann dieser Handle nicht wiederverwendet werden.
STATUS_INVALID_PARAMETER
Mindestens ein Parameter ist ungültig. Dies schließt den Fall ein, in dem cbOutput nicht die gleiche Größe wie der Hash ist.

Hinweise

Je nachdem, welche Prozessormodi ein Anbieter unterstützt, kann BCryptFinishHash entweder über den Benutzermodus oder den Kernelmodus aufgerufen werden. Kernelmodus-Aufrufer können entweder bei PASSIVE_LEVELIRQL oder DISPATCH_LEVEL IRQL ausgeführt werden. Wenn die aktuelle IRQL-Ebene DISPATCH_LEVEL ist, muss das im hHash-Parameter bereitgestellte Handle von einem Algorithmushandle abgeleitet werden, das von einem Anbieter zurückgegeben wird, der mithilfe des BCRYPT_PROV_DISPATCH Flags geöffnet wurde, und alle Zeiger, die an die BCryptFinishHash-Funktion übergeben wurden, müssen auf nichtpaged (oder gesperrte) Speicher verweisen.

Um diese Funktion im Kernelmodus aufzurufen, verwenden Sie Cng.lib, das Teil des Driver Development Kit (DDK) ist. Windows Server 2008 und Windows Vista: Verwenden Sie Ksecdd.lib, um diese Funktion im Kernelmodus aufzurufen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile bcrypt.h
Bibliothek Bcrypt.lib
DLL Bcrypt.dll

Weitere Informationen

BCryptHashData