BCryptHashData-Funktion (bcrypt.h)

Die BCryptHashData-Funktion führt einen Hash- oder Nachrichtenauthentifizierungscode (MAC) auf einem Datenpuffer aus.

Syntax

NTSTATUS BCryptHashData(
  [in, out] BCRYPT_HASH_HANDLE hHash,
  [in]      PUCHAR             pbInput,
  [in]      ULONG              cbInput,
  [in]      ULONG              dwFlags
);

Parameter

[in, out] hHash

Der Handle des Hash- oder MAC-Objekts, das zum Ausführen des Vorgangs verwendet werden soll. Dieses Handle wird durch Aufrufen der BCryptCreateHash-Funktion abgerufen.

[in] pbInput

Ein Zeiger auf einen Puffer, der die zu verarbeitenden Daten enthält. Der cbInput-Parameter enthält die Anzahl der Bytes in diesem Puffer. Diese Funktion ändert den Inhalt dieses Puffers nicht.

[in] cbInput

Die Anzahl der Bytes im pbInput-Puffer .

[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_PARAMETER
Mindestens ein Parameter ist ungültig.
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.

Hinweise

Wenn Sie mehrere Puffer in den Hash oder MAC kombinieren möchten, können Sie diese Funktion mehrmals aufrufen, indem Sie jedes Mal einen anderen Puffer übergeben. Rufen Sie die BCryptFinishHash-Funktion auf, um den Hash- oder MAC-Wert abzurufen. Nachdem die BCryptFinishHash-Funktion für einen angegebenen Handle aufgerufen wurde, kann dieser Handle nicht wiederverwendet werden.

Je nachdem, welche Prozessormodi ein Anbieter unterstützt, kann BCryptHashData 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 wurde, der mithilfe des BCRYPT_PROV_DISPATCH-Flags geöffnet wurde, und alle Zeiger, die an die BCryptHashData-Funktion übergeben wurden, müssen sich auf nichtpaged (oder gesperrte) Speicher beziehen.

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

BCryptCreateHash

BCryptFinishHash