BCryptFinishHash-Funktion (bcrypt.h)
Die BCryptFinishHash-Funktion ruft den Hash- oder MAC-Wert (Message Authentication Code ) für die Daten ab, die aus früheren Aufrufen von 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 Hash- oder MAC-Objekts verwendet werden soll. Dieses Handle wird durch Aufrufen der BCryptCreateHash-Funktion abgerufen. Nachdem diese Funktion aufgerufen wurde, kann das an diese Funktion übergebene Hashhandle nicht mehr 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 angegeben.
[in] dwFlags
Eine Reihe von Flags, die das Verhalten dieser Funktion ändern. Derzeit sind keine Flags definiert, daher sollte dieser Parameter 0 sein.
Rückgabewert
Gibt einen status Code zurück, der den Erfolg oder Fehler der Funktion angibt.
Mögliche Rückgabecodes umfassen folgendes, sind aber nicht darauf beschränkt.
Rückgabecode | Beschreibung |
---|---|
|
Die Funktion war erfolgreich. |
|
Das Hashhandle im hHash-Parameter ist ungültig. Nachdem die BCryptFinishHash-Funktion für ein Hashhandle aufgerufen wurde, kann dieses Handle nicht wiederverwendet werden. |
|
Mindestens ein Parameter ist ungültig. Dies schließt den Fall ein, in dem cbOutput nicht die gleiche Größe wie der Hash aufweist. |
Hinweise
Je nachdem, welche Prozessormodi ein Anbieter unterstützt, kann BCryptFinishHash entweder im Benutzermodus oder im Kernelmodus aufgerufen werden. Kernelmodusaufrufer können entweder PASSIVE_LEVELIRQL oder DISPATCH_LEVEL IRQL ausführen. 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 flags BCRYPT_PROV_DISPATCH geöffnet wurde, und alle zeiger, die an die BCryptFinishHash-Funktion übergeben werden, müssen auf nicht ausgestellten (oder gesperrten) Arbeitsspeicher verweisen.
Um diese Funktion im Kernelmodus aufzurufen, verwenden Sie Cng.lib, die Teil des Driver Development Kit (DDK) ist. Windows Server 2008 und Windows Vista: Um diese Funktion im Kernelmodus aufzurufen, verwenden Sie Ksecdd.lib.
Anforderungen
Anforderung | Wert |
---|---|
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 |