CryptExportPKCS8Ex-Funktion (wincrypt.h)

[Die CryptExportPKCS8Ex-Funktion steht ab Windows Server 2008 und Windows Vista nicht mehr zur Verfügung. Verwenden Sie stattdessen die Funktion PFXExportCertStoreEx .]

Die Funktion CryptExportPKCS8Ex exportiert den privaten Schlüssel im PKCS #8-Format. Diese Funktion verfügt über keine zugeordnete Importbibliothek. Sie müssen die Funktionen LoadLibrary und GetProcAddress verwenden, um eine dynamische Verknüpfung mit Crypt32.dll.

Syntax

BOOL CryptExportPKCS8Ex(
  [in]            CRYPT_PKCS8_EXPORT_PARAMS *psExportParams,
  [in]            DWORD                     dwFlags,
  [in, optional]  void                      *pvAuxInfo,
  [out, optional] BYTE                      *pbPrivateKeyBlob,
  [in, out]       DWORD                     *pcbPrivateKeyBlob
);

Parameter

[in] psExportParams

Ein Zeiger auf eine CRYPT_PKCS8_EXPORT_PARAMS Struktur, die Informationen zum zu exportierenden Schlüssel enthält.

[in] dwFlags

Dieser Parameter sollte null sein, wenn pbPrivateKeyBlobNULL ist und andernfalls 0x8000.

[in, optional] pvAuxInfo

Dieser Parameter muss NULL sein.

[out, optional] pbPrivateKeyBlob

Ein Zeiger auf ein Array von BYTE-Strukturen , um den zu exportierenden privaten Schlüssel zu empfangen.

Der private Schlüssel enthält die Informationen in einem PKCS #8 PrivateKeyInfo Abstract Syntax Notation One (ASN.1) Typ im PKCS #8-Standard.

Zur Speicherzuordnung können Sie die Größe des zu exportierenden privaten Schlüssels abrufen, indem Sie diesen Parameter auf NULL festlegen. Weitere Informationen finden Sie unter Abrufen von Daten unbekannter Länge.

[in, out] pcbPrivateKeyBlob

Ein Zeiger auf ein DWORD , das bei der Eingabe die Größe der Speicherzuordnung in Bytes enthalten kann, die erforderlich ist, um den pbPrivateKeyBlob zu enthalten. Wenn pbPrivateKeyBlobNULL ist, gibt dieser Parameter die Größe der Speicherbelegung zurück, die für einen zweiten Aufruf der Funktion erforderlich ist. Weitere Informationen finden Sie unter Abrufen von Daten unbekannter Länge.

Rückgabewert

Wenn die Funktion erfolgreich ist, gibt die Funktion nonzero (TRUE) zurück.

Wenn die Funktion fehlschlägt, gibt sie null (FALSE) zurück. Rufen Sie GetLastError auf, um erweiterte Fehlerinformationen zu erhalten.

Die folgenden Fehlercodes sind spezifisch für diese Funktion.

Rückgabecode Beschreibung
ERROR_UNSUPPORTED_TYPE
Eine Exportfunktion, die installiert oder registriert werden kann, konnte nicht gefunden werden.
ERROR_MORE_DATA
Wenn der vom pbPrivateKeyBlob-Parameter angegebene Puffer nicht groß genug ist, um die zurückgegebenen Daten zu speichern, legt die Funktion den ERROR_MORE_DATA Code fest und speichert die erforderliche Puffergröße in Bytes in der Variablen, auf die vom parameter pcbPrivateKeyBlob verwiesen wird.
 

Wenn die Funktion fehlschlägt, gibt GetLastError einen ASN.1-Codierungs-/Decodierungsfehler zurück. Informationen zu diesen Fehlern finden Sie unter ASN.1 Encoding/Decoding Return Values.

Hinweise

Diese Funktion wird nur für asymmetrische Schlüssel unterstützt.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile wincrypt.h
DLL Crypt32.dll

Weitere Informationen

CRYPT_PKCS8_EXPORT_PARAMS

CryptAcquireContext

CryptExportPKCS8

CryptImportPKCS8