BCryptDeriveKeyCapi-Funktion (bcrypt.h)

Die BCryptDeriveKeyCapi-Funktion leitet einen Schlüssel von einem Hashwert ab.

Diese Funktion wird als Hilfsfunktion bereitgestellt, um die Migration von legacy Cryptography API (CAPI)-basierten Anwendungen zur Verwendung der Kryptografie-API: Nächste Generation (CNG) zu unterstützen. Die BCryptDeriveKeyCapi-Funktion führt die Schlüsselableitung in einer Weise aus, die mit der CAPI CryptDeriveKey-Funktion kompatibel ist.

Syntax

NTSTATUS BCryptDeriveKeyCapi(
  [in]           BCRYPT_HASH_HANDLE hHash,
  [in, optional] BCRYPT_ALG_HANDLE  hTargetAlg,
  [out]          PUCHAR             pbDerivedKey,
  [in]           ULONG              cbDerivedKey,
  [in]           ULONG              dwFlags
);

Parameter

[in] hHash

Das Handle des Hashobjekts. Das Handle wird durch Aufrufen der BCryptCreateHash-Funktion abgerufen. Wenn Sie die Verwendung des Handles abgeschlossen haben, müssen Sie es durch Aufrufen der Funktion BCryptDestroyHash freigeben.

[in, optional] hTargetAlg

Das Handle des Algorithmusobjekts. Dies kann ein ALG_ID Wert sein, der mit der Funktion CryptDeriveKey kompatibel ist.

Hinweis Einschränkungen in CAPI und Schlüsselerweiterung verhindern die Verwendung eines Hashalgorithmus, der eine Ausgabe generiert, die größer als 512 Bit ist.
 

[out] pbDerivedKey

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

[in] cbDerivedKey

Die Größe des abgeleiteten Schlüssels in Zeichen, 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 umfassen folgendes, sind aber nicht darauf beschränkt.

Rückgabecode Beschreibung
STATUS_SUCCESS
Die Funktion war erfolgreich.
STATUS_INVALID_HANDLE
Das Handle im hHash - oder hTargetAlg-Parameter ist ungültig.
STATUS_INVALID_PARAMETER
Der Wert im parameter cbDerivedKey ist größer als das Doppelte der Ausgabegröße der Hashfunktion.
STATUS_NO_MEMORY
Ein Fehler bei der Speicherzuordnung ist aufgetreten.

Hinweise

Diese Funktion unterstützt die PK-Salzfunktion der CAPI CryptDeriveKey-Funktion nicht.

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