Funzione BCryptDeriveKeyPBKDF2 (bcrypt.h)

La funzione BCryptDeriveKeyPBKDF2 deriva una chiave da un valore hash usando l'algoritmo di derivazione della chiave PBKDF2 come definito da RFC 2898.

Sintassi

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
);

Parametri

[in] hPrf

Handle di un provider di algoritmi che fornisce la funzione pseudo-casuale. Questo deve essere un provider di algoritmi che esegue un calcolo del codice di autenticazione dei messaggi . Quando si usa il provider di algoritmi Microsoft predefinito, è possibile usare qualsiasi algoritmo di hash aperto usando il flag di BCRYPT_ALG_HANDLE_HMAC_FLAG .

Nota È possibile usare solo algoritmi che implementano la proprietà BCRYPT_IS_KEYED_HASH per popolare questo parametro.
 

[in, optional] pbPassword

Puntatore a un buffer contenente il parametro password per l'algoritmo di derivazione della chiave PBKDF2.

Nota Tutte le informazioni segrete usate nella derivazione della chiave devono essere passate in questo buffer.

 

[in] cbPassword

Lunghezza, in byte, dei dati nel buffer a cui punta il parametro pbPassword .

[in, optional] pbSalt

Puntatore a un buffer contenente l'argomento salt per l'algoritmo di derivazione della chiave PBKDF2.

Nota Tutte le informazioni non segrete e usate nella derivazione della chiave devono essere passate in questo buffer.
 

[in] cbSalt

Lunghezza, in byte, dell'argomento salt a cui punta il parametro pbSalt .

[in] cIterations

Numero di iterazioni per l'algoritmo di derivazione della chiave PBKDF2.

[out] pbDerivedKey

Puntatore a un buffer che riceve la chiave derivata.

[in] cbDerivedKey

Lunghezza, in byte, della chiave derivata restituita nel buffer a cui fa riferimento il parametro pbDerivedKey .

[in] dwFlags

Questo parametro è riservato e deve essere impostato su zero.

Valore restituito

Restituisce un codice di stato che indica l'esito positivo o negativo della funzione.

I codici restituiti possibili includono, ma non sono limitati a, i seguenti.

Codice restituito Descrizione
STATUS_SUCCESS
La funzione ha avuto esito positivo.
STATUS_INVALID_HANDLE
L'handle nel parametro hPrf non è valido.
STATUS_INVALID_PARAMETER
Uno o più parametri non sono validi.
STATUS_NO_MEMORY
Si è verificato un errore di allocazione della memoria.

Requisiti

Requisito Valore
Client minimo supportato Windows 7 [app desktop | App UWP]
Server minimo supportato Windows Server 2008 R2 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione bcrypt.h
Libreria Bcrypt.lib
DLL Bcrypt.dll