NCryptSecretAgreement-Funktion (ncrypt.h)

Die NCryptSecretAgreement-Funktion erstellt einen Geheimvertragswert aus einem privaten und einem öffentlichen Schlüssel.

Syntax

SECURITY_STATUS NCryptSecretAgreement(
  [in]  NCRYPT_KEY_HANDLE    hPrivKey,
  [in]  NCRYPT_KEY_HANDLE    hPubKey,
  [out] NCRYPT_SECRET_HANDLE *phAgreedSecret,
  [in]  DWORD                dwFlags
);

Parameter

[in] hPrivKey

Das Handle des privaten Schlüssels , der zum Erstellen des Geheimnisvereinbarungswerts verwendet werden soll. Dieser Schlüssel und der hPubKey-Schlüssel müssen vom gleichen Schlüsselspeicheranbieter stammen.

[in] hPubKey

Das Handle des öffentlichen Schlüssels , der zum Erstellen des Geheimnisvertragswerts verwendet werden soll. Dieser Schlüssel und der hPrivKey-Schlüssel müssen vom gleichen Schlüsselspeicheranbieter stammen.

[out] phAgreedSecret

Ein Zeiger auf eine NCRYPT_SECRET_HANDLE Variable, die ein Handle empfängt, das den Geheimnisvertragswert darstellt. Wenn dieses Handle nicht mehr benötigt wird, geben Sie es frei, indem Sie es an die NCryptFreeObject-Funktion übergeben.

[in] dwFlags

Flags, die das Funktionsverhalten ändern. Dies kann null oder eine Kombination aus einem oder mehreren der folgenden Werte sein. Der Satz gültiger Flags ist für jeden Schlüsselspeicheranbieter spezifisch. Das folgende Flag gilt für alle Anbieter.

Wert Bedeutung
NCRYPT_SILENT_FLAG
Fordert an, dass der Schlüsseldienstanbieter (Key Service Provider, KSP) keine Benutzeroberfläche anzeigt. Wenn der Anbieter die Benutzeroberfläche für den Betrieb anzeigen muss, schlägt der Aufruf fehl, und der KSP sollte den NTE_SILENT_CONTEXT Fehlercode als letzten Fehler festlegen.

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
ERROR_SUCCESS
Die Funktion war erfolgreich.
NTE_INVALID_HANDLE
Der hPrivKey - oder hPubKey-Parameter ist ungültig.
NTE_INVALID_PARAMETER
Mindestens ein Parameter ist ungültig.
NTE_NO_MEMORY
Ein Speicherbelegungsfehler ist aufgetreten.

Hinweise

Ein Dienst darf diese Funktion nicht über seine StartService-Funktion aufrufen. Wenn ein Dienst diese Funktion über seine StartService-Funktion aufruft, kann ein Deadlock auftreten, und der Dienst reagiert möglicherweise nicht mehr.

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 ncrypt.h
Bibliothek Ncrypt.lib
DLL Ncrypt.dll

Weitere Informationen

NCryptFreeObject