Freigeben über


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
STATUS_SUCCESS
Die Funktion war erfolgreich.
STATUS_INVALID_HANDLE
Das Schlüsselhandle im hPrivKey oder hPubKey Parameter ist ungültig.
STATUS_INVALID_PARAMETER
Mindestens ein Parameter ist ungültig.
STATUS_NOT_SUPPORTED
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

Siehe auch

BCryptDestroySecret