BCryptSecretAgreement-Funktion (bcrypt.h)
Die BCryptSecretAgreement Funktion erstellt einen geheimen Vertragswert 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, um den Geheimvertragswert zu erstellen. Dieser Schlüssel und der hPubKey- Schlüssel müssen vom gleichen CNG-Kryptografiealgorithmusanbieter stammen.
[in] hPubKey
Das Handle des öffentlichen Schlüssels zum Erstellen des Geheimvertragswerts verwendet werden. Dieser Schlüssel und der hPrivKey Schlüssel müssen vom gleichen CNG-Kryptografiealgorithmusanbieter stammen.
[out] phAgreedSecret
Ein Zeiger auf eine BCRYPT_SECRET_HANDLE, die ein Handle empfängt, das den Wert des geheimen Vertrags darstellt. Dieser Handle muss losgelassen werden, indem er an die BCryptDestroySecret Funktion übergeben wird, wenn er 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 Statuscode zurück, der den Erfolg oder Fehler der Funktion angibt.
Mögliche Rückgabecodes umfassen, aber nicht beschränkt auf Folgendes.
Rückgabecode | Beschreibung |
---|---|
|
Die Funktion war erfolgreich. |
|
Das Schlüsselhandle im hPrivKey oder hPubKey Parameter ist ungültig. |
|
Mindestens ein Parameter ist ungültig. |
|
Das Schlüsselhandle im hPrivKey Parameter ist kein Diffie-Hellman Schlüssel. |
Bemerkungen
Je nachdem, welche Prozessormodi ein Anbieter unterstützt, können BCryptSecretAgreement entweder über den Benutzermodus oder den Kernelmodus aufgerufen werden. Kernelmodusaufrufer können entweder PASSIVE_LEVELIRQL- oder DISPATCH_LEVEL IRQL ausgeführt werden. Wenn die aktuelle IRQL-Ebene DISPATCH_LEVEList, müssen die in der hPrivKey- und hPubKey Parameter von einem Algorithmushandle abgeleitet werden, das von einem Anbieter zurückgegeben wurde, der mithilfe des BCRYPT_PROV_DISPATCH-Flags geöffnet wurde, und alle Zeiger, die an die BCryptSecretAgreement-Funktion übergeben wurden, müssen auf nichtpageten (oder gesperrten) Speicher verweisen.
Um diese Funktion im Kernelmodus aufzurufen, verwenden Sie Cng.lib, das 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 |
---|---|
mindestens unterstützte Client- | Windows Vista [Desktop-Apps | UWP-Apps] |
mindestens unterstützte Server- | Windows Server 2008 [Desktop-Apps | UWP-Apps] |
Zielplattform- | Fenster |
Header- | bcrypt.h |
Library | Bcrypt.lib |
DLL- | Bcrypt.dll |