SslExportKey-Funktion
Die SslExportKey-Funktion gibt einen SSL-Sitzungsschlüssel (Secure Sockets Layer Protocol) oder einen öffentlichen kurzlebigen Schlüssel in ein serialisiertes BLOB zurück.
Syntax
SECURITY_STATUS WINAPI SslExportKey(
_In_ NCRYPT_PROV_HANDLE hSslProvider,
_In_ NCRYPT_KEY_HANDLE hKey,
_In_ LPCWSTR pszBlobType,
_Out_opt_ PBYTE pbOutput,
_In_ DWORD cbOutput,
_Out_ DWORD *pcbResult,
_In_ DWORD dwFlags
);
Parameter
-
hSslProvider [in]
-
Das Handle des SSL-Protokollanbieters instance.
-
hKey [in]
-
Das Handle des zu exportierenden Schlüssels.
Wenn Sie keinen Schlüssel angeben, legen Sie diesen Parameter auf NULL fest.
Hinweis
Ein hKey-Handle wird durch Aufrufen der SslOpenPrivateKey-Funktion abgerufen. Von der NCryptOpenKey-Funktion abgerufene Handles werden nicht unterstützt.
-
pszBlobType [in]
-
Eine mit NULL endende Unicode-Zeichenfolge, die einen Bezeichner enthält, der den Typ des zu exportierenden BLOB angibt. Dies kann einer der folgenden Werte sein.
Wert Bedeutung - BCRYPT_DH_PUBLIC_BLOB
Exportieren sie einen Diffie-Hellman öffentlichen Schlüssel. Der pbOutput-Puffer empfängt eine BCRYPT_DH_KEY_BLOB-Struktur unmittelbar gefolgt von den Schlüsseldaten. - BCRYPT_ECCPUBLIC_BLOB
Exportieren eines öffentlichen Schlüssels für die Kryptografie der elliptischen Kurve (ECC). Der pbOutput-Puffer empfängt eine BCRYPT_ECCKEY_BLOB-Struktur unmittelbar gefolgt von den Schlüsseldaten. - BCRYPT_OPAQUE_KEY_BLOB
Exportieren Sie einen symmetrischen Schlüssel in einem Format, das für einen einzelnen Kryptografiedienstanbieter (CSP ) spezifisch ist. Undurchsichtige BLOBs sind nicht übertragbar und müssen mit demselben Kryptografiedienstanbieter (CSP ) importiert werden, der das BLOB generiert hat. - BCRYPT_RSAPUBLIC_BLOB
Exportieren sie einen öffentlichen RSA-Schlüssel. Der pbOutput-Puffer empfängt eine BCRYPT_RSAKEY_BLOB Struktur unmittelbar gefolgt von den Schlüsseldaten. -
pbOutput [out, optional]
-
Die Adresse eines Puffers, der das Schlüssel-BLOB empfängt. Der cbOutput-Parameter enthält die Größe dieses Puffers. Wenn dieser Parameter NULL ist, platziert diese Funktion die erforderliche Größe in Byte im DWORD , auf das der pcbResult-Parameter verweist.
-
cbOutput [in]
-
Die Größe des pbOutput-Puffers in Bytes.
-
pcbResult [out]
-
Die Adresse einer DWORD-Variablen , die die Anzahl der Bytes empfängt, die in den pbOutput-Puffer kopiert wurden. Wenn der pbOutput-Parameter beim Aufrufen der Funktion auf NULL festgelegt ist, wird die erforderliche Größe für den pbOutput-Puffer in Bytes im DWORD zurückgegeben, auf das dieser Parameter verweist.
-
dwFlags [in]
-
Für die zukünftige Verwendung reserviert.
Rückgabewert
Wenn die Funktion erfolgreich ist, gibt sie null zurück.
Wenn die Funktion fehlschlägt, wird ein Fehlerwert ungleich null zurückgegeben.
Mögliche Rückgabecodes sind u. a. die folgenden:
Rückgabecode/-wert | BESCHREIBUNG |
---|---|
|
Einer der bereitgestellten Handles ist ungültig. |
Bemerkungen
Die SslExportKey-Funktion erleichtert den Transport von Sitzungsschlüsseln von einem Prozess zu einem anderen sowie das Exportieren des öffentlichen Teils eines kurzlebigen Schlüssels.
Beim Exportieren von Sitzungsschlüsseln ist der BLOB-Typ undurchsichtig, was bedeutet, dass das Format des BLOB irrelevant ist, solange die Funktionen SslExportKey und SslImportKey es interpretieren können.
Beim Exportieren des öffentlichen Teils eines kurzlebigen Schlüssels muss der BLOB-Typ der geeignete Typ sein, z. B. NCRYPT_DH_PUBLIC_BLOB oder NCRYPT_ECCPUBLIC_BLOB.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) |
Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) |
Windows Server 2008 [nur Desktop-Apps] |
Header |
|
DLL |
|