BCryptOpenAlgorithmProvider-Funktion (bcrypt.h)
Die Funktion BCryptOpenAlgorithmProvider lädt und initialisiert einen CNG-Anbieter.
Syntax
NTSTATUS BCryptOpenAlgorithmProvider(
[out] BCRYPT_ALG_HANDLE *phAlgorithm,
[in] LPCWSTR pszAlgId,
[in] LPCWSTR pszImplementation,
[in] ULONG dwFlags
);
Parameter
[out] phAlgorithm
Ein Zeiger auf eine BCRYPT_ALG_HANDLE Variable, die das Handle des CNG-Anbieters empfängt. Wenn Sie die Verwendung dieses Handles abgeschlossen haben, geben Sie es frei, indem Sie es an die Funktion BCryptCloseAlgorithmProvider übergeben.
[in] pszAlgId
Ein Zeiger auf eine unicode-Zeichenfolge mit NULL-Beendigung, die den angeforderten kryptografischen Algorithmus identifiziert. Dies kann einer der Standardmäßigen CNG-Algorithmusbezeichner oder der Bezeichner für einen anderen registrierten Algorithmus sein.
[in] pszImplementation
Ein Zeiger auf eine unicode-Zeichenfolge mit Null-Beendigung, die den zu ladenden Anbieter identifiziert. Dies ist der registrierte Alias des anbieters für kryptografische Grundtypen. Dieser Parameter ist optional und kann NULL sein, wenn er nicht benötigt wird. Wenn dieser Parameter NULL ist, wird der Standardanbieter für den angegebenen Algorithmus geladen.
Im Folgenden sind die vordefinierten Anbieternamen aufgeführt.
[in] dwFlags
Flags, die das Verhalten der Funktion ändern. Dies kann null oder eine Kombination aus einem oder mehreren der folgenden Werte sein.
Wert | Bedeutung |
---|---|
|
Der Anbieter führt den HMAC-Algorithmus (Hash-Based Message Authentication Code ) mit dem angegebenen Hashalgorithmus aus. Dieses Flag wird nur von Hashalgorithmusanbietern verwendet. |
|
Lädt den Anbieter in den nicht auslagerten Arbeitsspeicherpool. Wenn dieses Flag nicht vorhanden ist, wird der Anbieter in den ausgelagerten Speicherpool geladen. Wenn dieses Flag angegeben wird, darf das zurückgegebene Handle nicht geschlossen werden, bevor alle abhängigen Objekte freigegeben wurden.
Hinweis Dieses Flag wird nur im Kernelmodus unterstützt und ermöglicht die Verarbeitung nachfolgender Vorgänge auf dem Anbieter auf Dispatchebene. Wenn der Anbieter den Aufruf auf Verteilerebene nicht unterstützt, gibt er beim Öffnen mit diesem Flag einen Fehler zurück.
|
|
Erstellt ein wiederverwendbares Hashingobjekt. Das -Objekt kann unmittelbar nach dem Aufruf von BCryptFinishHash für einen neuen Hashvorgang verwendet werden. Weitere Informationen finden Sie unter Erstellen eines Hashs mit CNG.
Windows Server 2008 R2, Windows 7, Windows Server 2008 und Windows Vista: Dieses Flag wird nicht unterstützt. |
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. |
|
Für die angegebene Algorithmus-ID wurde kein Anbieter gefunden. |
|
Mindestens ein Parameter ist ungültig. |
|
Ein Speicherbelegungsfehler ist aufgetreten. |
Hinweise
Aufgrund der Anzahl und des Typs von Vorgängen, die zum Suchen, Laden und Initialisieren eines Algorithmusanbieters erforderlich sind, ist die Funktion BCryptOpenAlgorithmProvider eine relativ zeitintensive Funktion. Daher wird empfohlen, dass Sie alle Algorithmusanbieterhandles zwischenspeichern, die Sie mehr als einmal verwenden, anstatt die Algorithmusanbieter immer wieder zu öffnen und zu schließen.
BCryptOpenAlgorithmProvider kann entweder aus dem Benutzermodus oder dem Kernelmodus aufgerufen werden. Aufrufer im Kernelmodus müssen in PASSIVE_LEVELIRQL ausgeführt werden.
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.
Ab Windows 10 folgt CNG nicht mehr jedem Update der Kryptografiekonfiguration. Bestimmte Änderungen, z. B. das Hinzufügen eines neuen Standardanbieters oder das Ändern der Einstellungsreihenfolge von Algorithmusanbietern, erfordern möglicherweise einen Neustart. Aus diesem Fall sollten Sie einen Neustart durchführen, bevor Sie BCryptOpenAlgorithmProvider mit einem neu konfigurierten Anbieter aufrufen.
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 |
Weitere Informationen
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