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 |
---|---|
|
Für die Zuweisung der erforderlichen Puffer steht nicht genügend Arbeitsspeicher zur Verfügung. |
|
Eines der bereitgestellten Handles ist ungültig. |
|
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 |
|
DLL |
|