Freigeben über


SslGenerateMasterKey-Funktion

Die SslGenerateMasterKey-Funktion berechnet das Secure Sockets Layer-Protokoll (SSL) master geheimen Schlüssel.

Syntax

SECURITY_STATUS WINAPI SslGenerateMasterKey(
  _In_  NCRYPT_PROV_HANDLE hSslProvider,
  _In_  NCRYPT_KEY_HANDLE  hPrivateKey,
  _In_  NCRYPT_KEY_HANDLE  hPublicKey,
  _Out_ NCRYPT_KEY_HANDLE  *phMasterKey,
  _In_  DWORD              dwProtocol,
  _In_  DWORD              dwCipherSuite,
  _In_  PNCryptBufferDesc  pParameterList,
  _Out_ PBYTE              pbOutput,
  _In_  DWORD              cbOutput,
  _Out_ DWORD              *pcbResult,
  _In_  DWORD              dwFlags
);

Parameter

hSslProvider [in]

Das Handle für den SSL-Protokollanbieter instance.

hPrivateKey [in]

Das Handle für den privaten Schlüssel , der im Austausch verwendet wird.

hPublicKey [in]

Das Handle für den öffentlichen Schlüssel , der im Austausch verwendet wird.

phMasterKey [out]

Ein Zeiger auf das Handle auf den generierten master Schlüssel.

dwProtocol [in]

Einer der Werte des CNG-SSL-Anbieterprotokoll-Bezeichners .

dwCipherSuite [in]

Einer der CNG SSL Provider Cipher Suite Identifier-Werte .

pParameterList [in]

Ein Zeiger auf ein Array von NCryptBuffer-Puffern , die Informationen enthalten, die im Rahmen des Schlüsselaustauschvorgangs verwendet werden. Der genaue Satz von Puffern hängt vom verwendeten Protokoll und der Verschlüsselungssuite ab. Mindestens enthält die Liste Puffer, die die vom Client und Server bereitgestellten Zufallswerte enthalten.

pbOutput [out]

Die Adresse eines Puffers, der das Premastergeheimnis empfängt, das mit dem öffentlichen Schlüssel des Servers verschlüsselt ist. Der cbOutput-Parameter enthält die Größe dieses Puffers. Wenn dieser Parameter NULL ist, gibt diese Funktion die erforderliche Größe in Bytes im DWORD zurück, auf den der pcbResult-Parameter verweist.

Hinweis

Dieser Puffer wird beim Durchführen eines RSA-Schlüsselaustauschs verwendet.

cbOutput [in]

Die Größe des pbOutput-Puffers in Bytes.

pcbResult [out]

Ein Zeiger auf einen DWORD-Wert , in dem die Anzahl der in den pbOutput-Puffer geschriebenen Bytes platziert werden soll.

dwFlags [in]

Gibt an, ob diese Funktion für den clientseitigen oder serverseitigen Schlüsselaustausch verwendet wird.

Wert Bedeutung
NCRYPT_SSL_CLIENT_FLAG
0x00000001
Gibt einen clientseitigen Schlüsselaustausch an.
NCRYPT_SSL_SERVER_FLAG
0x00000002
Gibt einen serverseitigen Schlüsselaustausch an.

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt sie null zurück.

Wenn die Funktion fehlschlägt, gibt sie einen fehlerfreien Wert zurück.

Mögliche Rückgabecodes umfassen folgendes, sind aber nicht darauf beschränkt.

Rückgabecode/-wert Beschreibung
NTE_NO_MEMORY
0x8009000EL
Für die Zuweisung der erforderlichen Puffer steht nicht genügend Arbeitsspeicher zur Verfügung.
NTE_INVALID_HANDLE
0x80090026L
Eines der bereitgestellten Handles ist ungültig.
NTE_INVALID_PARAMETER
0x80090027L
Der Parameter phMasterKey oder hPublicKey ist ungültig.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Server 2008 [nur Desktop-Apps]
Header
Sslprovider.h
DLL
Ncrypt.dll