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 |
---|---|
|
Eine Exportfunktion, die installiert oder registriert werden kann, konnte nicht gefunden werden. |
|
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 |