BCryptGenerateKeyPair-Funktion (bcrypt.h)
Die Funktion BCryptGenerateKeyPair erstellt ein leeres Paar für öffentliche/private Schlüssel. Nachdem Sie mit dieser Funktion einen Schlüssel erstellt haben, können Sie die BCryptSetProperty-Funktion verwenden, um die zugehörigen Eigenschaften festzulegen. Der Schlüssel kann jedoch erst verwendet werden, wenn die Funktion BCryptFinalizeKeyPair aufgerufen wird.
Syntax
NTSTATUS BCryptGenerateKeyPair(
[in, out] BCRYPT_ALG_HANDLE hAlgorithm,
[out] BCRYPT_KEY_HANDLE *phKey,
[in] ULONG dwLength,
[in] ULONG dwFlags
);
Parameter
[in, out] hAlgorithm
Handle eines Algorithmusanbieters, der Signatur, asymmetrische Verschlüsselung oder Schlüsselvereinbarung unterstützt. Dieses Handle muss mit der Funktion BCryptOpenAlgorithmProvider erstellt worden sein.
[out] phKey
Ein Zeiger auf eine BCRYPT_KEY_HANDLE , die das Handle des Schlüssels empfängt. Dieses Handle wird in nachfolgenden Funktionen verwendet, die einen Schlüssel erfordern, z. B. BCryptEncrypt. Dieses Handle muss freigegeben werden, wenn es nicht mehr benötigt wird, indem es an die Funktion BCryptDestroyKey übergeben wird.
[in] dwLength
Die Länge des Schlüssels in Bits. Algorithmusanbieter haben unterschiedliche Schlüsselgrößeneinschränkungen für jeden asymmetrischen Standardalgorithmus.
[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. |
|
Das Algorithmushandle im hAlgorithm-Parameter ist ungültig. |
|
Mindestens ein Parameter ist ungültig. |
|
Der angegebene Anbieter unterstützt keine asymmetrische Schlüsselverschlüsselung. |
Hinweise
Je nachdem, welche Prozessormodi ein Anbieter unterstützt, kann BCryptGenerateKeyPair 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 hAlgorithm-Parameter bereitgestellte Handle mit dem flag BCRYPT_PROV_DISPATCH geöffnet worden sein, und alle an die BCryptGenerateKeyPair-Funktion übergebenen Zeiger müssen auf nicht ausgestellten (oder gesperrten) Speicher 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 |
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