BCryptDuplicateHash-Funktion (bcrypt.h)
Die BCryptDuplicateHash-Funktion dupliziert ein vorhandenes Hash- oder Message Authentication Code (MAC)-Objekt. Das duplizierte Objekt enthält alle Zustands- und Datendaten, die zum Zeitpunkt der Duplizierung im ursprünglichen Objekt enthalten sind.
Syntax
NTSTATUS BCryptDuplicateHash(
[in] BCRYPT_HASH_HANDLE hHash,
[out] BCRYPT_HASH_HANDLE *phNewHash,
[out] PUCHAR pbHashObject,
[in] ULONG cbHashObject,
[in] ULONG dwFlags
);
Parameter
[in] hHash
Das Handle des zu duplizierenden Hash- oder MAC-Objekts.
[out] phNewHash
Ein Zeiger auf einen BCRYPT_HASH_HANDLE Wert, der das Handle empfängt, das das duplizierte Hash- oder MAC-Objekt darstellt.
[out] pbHashObject
Ein Zeiger auf einen Puffer, der den doppelten Hash oder das MAC-Objekt empfängt. Der cbHashObject-Parameter enthält die Größe dieses Puffers. Die erforderliche Größe dieses Puffers kann durch Aufrufen der BCryptGetProperty-Funktion abgerufen werden, um die BCRYPT_OBJECT_LENGTH-Eigenschaft abzurufen. Dadurch wird die Größe des Hashobjekts für den angegebenen Algorithmus angegeben.
Wenn das doppelte Hashhandle freigegeben wird, geben Sie diesen Arbeitsspeicher frei.
[in] cbHashObject
Die Größe des pbHashObject-Puffers in Bytes.
[in] dwFlags
Ein Satz von Flags, die das Verhalten dieser Funktion ändern. Es sind derzeit keine Flags definiert, sodass dieser Parameter 0 (null) sein sollte.
Rückgabewert
Gibt einen status Code zurück, der den Erfolg oder Fehler der Funktion angibt.
Mögliche Rückgabecodes sind u. a. die folgenden:
Rückgabecode | Beschreibung |
---|---|
|
Die Funktion war erfolgreich. |
|
Die Größe des durch den cbHashObject-Parameter angegebenen Hashobjekts ist nicht groß genug, um das Hashobjekt zu enthalten. |
|
Das Hashhandle im hHash-Parameter ist ungültig. |
|
Mindestens ein Parameter ist ungültig. |
Hinweise
Diese Funktion ist nützlich, wenn ein Hash oder mac über einen Block allgemeiner Daten berechnet wird. Nachdem die allgemeinen Daten verarbeitet wurden, kann das Hash- oder MAC-Objekt dupliziert werden, und dann können die eindeutigen Daten den einzelnen Objekten hinzugefügt werden.
Je nachdem, welche Prozessormodi ein Anbieter unterstützt, kann BCryptDuplicateHash entweder aus dem Benutzermodus oder dem Kernelmodus aufgerufen werden. Aufrufer im Kernelmodus können entweder am 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 mit dem flag BCRYPT_PROV_DISPATCH geöffnet wurde, und alle zeiger, die an die BCryptDestroyKey-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: Verwenden Sie Ksecdd.lib, um diese Funktion im Kernelmodus aufzurufen.
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 |
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für