BCryptSecretAgreement-Funktion (bcrypt.h)
Die BCryptSecretAgreement-Funktion erstellt einen Geheimvertragswert aus einem privaten und einem öffentlichen Schlüssel.
Syntax
NTSTATUS BCryptSecretAgreement(
[in] BCRYPT_KEY_HANDLE hPrivKey,
[in] BCRYPT_KEY_HANDLE hPubKey,
[out] BCRYPT_SECRET_HANDLE *phAgreedSecret,
[in] ULONG dwFlags
);
Parameter
[in] hPrivKey
Das Handle des privaten Schlüssels , der zum Erstellen des Werts der geheimen Vereinbarung verwendet werden soll. Dieser Schlüssel und der hPubKey-Schlüssel müssen vom gleichen CNG-Kryptografiealgorithmusanbieter stammen.
[in] hPubKey
Das Handle des öffentlichen Schlüssels , der zum Erstellen des Geheimvertragswerts verwendet werden soll. Dieser Schlüssel und der hPrivKey-Schlüssel müssen vom gleichen CNG-Kryptografiealgorithmusanbieter stammen.
[out] phAgreedSecret
Ein Zeiger auf einen BCRYPT_SECRET_HANDLE , der ein Handle empfängt, das den Wert der geheimen Vereinbarung darstellt. Dieses Handle muss freigegeben werden, indem es an die BCryptDestroySecret-Funktion übergeben wird, wenn es nicht mehr benötigt wird.
[in] dwFlags
Eine Reihe von Flags, die das Verhalten dieser Funktion ändern. Für diese Funktion sind keine Flags definiert.
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 |
---|---|
|
Die Funktion war erfolgreich. |
|
Das Schlüsselhandle im Parameter hPrivKey oder hPubKey ist ungültig. |
|
Mindestens ein Parameter ist ungültig. |
|
Das Schlüsselhandle im hPrivKey-Parameter ist kein Diffie-Hellman Schlüssel. |
Hinweise
Je nachdem, welche Prozessormodi ein Anbieter unterstützt, kann BCryptSecretAgreement entweder im Benutzermodus oder im Kernelmodus aufgerufen werden. Kernelmodusaufrufer können entweder PASSIVE_LEVELIRQL oder DISPATCH_LEVEL IRQL ausführen. Wenn die aktuelle IRQL-Ebene DISPATCH_LEVEL ist, müssen die in den Parametern hPrivKey und hPubKey bereitgestellten Handles von einem Algorithmushandle abgeleitet werden, das von einem Anbieter zurückgegeben wird, der mithilfe des flags BCRYPT_PROV_DISPATCH geöffnet wurde, und alle Zeiger, die an die BCryptSecretAgreement-Funktion übergeben werden, müssen auf nicht ausseitigen (oder gesperrten) Arbeitsspeicher 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: Um diese Funktion im Kernelmodus aufzurufen, verwenden Sie Ksecdd.lib.
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