BCryptDeriveKeyPBKDF2-Funktion (bcrypt.h)

Die BCryptDeriveKeyPBKDF2-Funktion leitet einen Schlüssel von einem Hashwert ab, indem der PBKDF2-Schlüsselableitungsalgorithmus verwendet wird, wie in RFC 2898 definiert.

Syntax

NTSTATUS BCryptDeriveKeyPBKDF2(
  [in]           BCRYPT_ALG_HANDLE hPrf,
  [in, optional] PUCHAR            pbPassword,
  [in]           ULONG             cbPassword,
  [in, optional] PUCHAR            pbSalt,
  [in]           ULONG             cbSalt,
  [in]           ULONGLONG         cIterations,
  [out]          PUCHAR            pbDerivedKey,
  [in]           ULONG             cbDerivedKey,
  [in]           ULONG             dwFlags
);

Parameter

[in] hPrf

Das Handle eines Algorithmusanbieters, der die Pseudo-Zufallsfunktion bereitstellt. Dies sollte ein Algorithmusanbieter sein, der eine Codeberechnung für die Nachrichtenauthentifizierung ausführt. Wenn Sie den Standardmäßigen Microsoft-Algorithmusanbieter verwenden, kann jeder Hashalgorithmus verwendet werden, der mit dem flag BCRYPT_ALG_HANDLE_HMAC_FLAG geöffnet wird.

Hinweis Nur Algorithmen, die die BCRYPT_IS_KEYED_HASH-Eigenschaft implementieren, können verwendet werden, um diesen Parameter aufzufüllen.
 

[in, optional] pbPassword

Ein Zeiger auf einen Puffer, der den Kennwortparameter für den PBKDF2-Schlüsselableitungsalgorithmus enthält.

Hinweis Alle geheimen Informationen, die in der Schlüsselableitung verwendet werden, sollten in diesem Puffer übergeben werden.

 

[in] cbPassword

Die Länge der Daten im Puffer, auf die der pbPassword-Parameter verweist, in Byte.

[in, optional] pbSalt

Ein Zeiger auf einen Puffer, der das Salt-Argument für den PBKDF2-Schlüsselableitungsalgorithmus enthält.

Hinweis Alle Informationen, die nicht geheim sind und in der Schlüsselableitung verwendet werden, sollten in diesem Puffer übergeben werden.
 

[in] cbSalt

Die Länge des salt-Arguments in Bytes, auf das der pbSalt-Parameter verweist.

[in] cIterations

Die Iterationsanzahl für den PBKDF2-Schlüsselableitungsalgorithmus.

[out] pbDerivedKey

Ein Zeiger auf einen Puffer, der den abgeleiteten Schlüssel empfängt.

[in] cbDerivedKey

Die Länge des abgeleiteten Schlüssels in Bytes, der im Puffer zurückgegeben wird, auf den der pbDerivedKey-Parameter verweist.

[in] dwFlags

Dieser Parameter ist reserviert und muss auf null festgelegt werden.

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
STATUS_SUCCESS
Die Funktion war erfolgreich.
STATUS_INVALID_HANDLE
Das Handle im hPrf-Parameter ist ungültig.
STATUS_INVALID_PARAMETER
Mindestens ein Parameter ist ungültig.
STATUS_NO_MEMORY
Ein Speicherbelegungsfehler ist aufgetreten.

Anforderungen

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