CryptImportPKCS8-Funktion (wincrypt.h)

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

Wichtig Diese API ist veraltet. Neue und vorhandene Software sollte mit der Verwendung von Kryptografie-APIs der nächsten Generation beginnen. Microsoft kann diese API in zukünftigen Versionen entfernen.
 
Die Funktion CryptImportPKCS8 importiert den privaten Schlüssel im PKCS #8-Format in einen Kryptografiedienstanbieter (CSP ). CryptImportPKCS8 gibt ein Handle an den Anbieter zurück, und die verwendete KeySpec-Importtaste.

Syntax

BOOL CryptImportPKCS8(
  [in]            CRYPT_PKCS8_IMPORT_PARAMS sPrivateKeyAndParams,
  [in]            DWORD                     dwFlags,
  [out, optional] HCRYPTPROV                *phCryptProv,
  [in, optional]  void                      *pvAuxInfo
);

Parameter

[in] sPrivateKeyAndParams

Eine CRYPT_PKCS8_IMPORT_PARAMS-Struktur , die das PRIVATE KEY-BLOB und die entsprechenden Parameter enthält.

[in] dwFlags

Ein DWORD-Wert . Dieser Parameter kann einer der folgenden Werte, eine Kombination aus ihnen oder ein NULL-Wert sein.

Wert Bedeutung
CRYPT_EXPORTABLE
Der zu importierende Schlüssel soll schließlich erneut exportiert werden. Wenn dieses Flag nicht verwendet wird, schlagen Aufrufe von CryptExportKey mit dem Schlüsselhandle fehl.
CRYPT_USER_PROTECTED
Wenn dieses Flag festgelegt ist, benachrichtigt der CSP den Benutzer über ein Dialogfeld oder eine andere Methode, wenn bestimmte Aktionen mit diesem Schlüssel versucht werden. Das genaue Verhalten wird durch den CSP oder den verwendeten CSP-Typ angegeben. Wenn der Anbieterkontext mit CRYPT_SILENT festgelegt wurde, verursacht die Verwendung dieses Flags einen Fehler, und der letzte Fehler wird auf NTE_SILENT_CONTEXT festgelegt.

[out, optional] phCryptProv

Ein Zeiger auf HCRYPTPROV , um das Handle des Anbieters zu empfangen, in den der Schlüssel importiert wird, indem die CryptImportPKCS8-Funktion aufgerufen wird.

Wenn Sie die Verwendung des Handles abgeschlossen haben, geben Sie das Handle frei, indem Sie CryptReleaseContext aufrufen.

Dieser Parameter kann NULL sein. In diesem Fall wird das Handle des Anbieters nicht zurückgegeben.

[in, optional] pvAuxInfo

Dieser Parameter muss NULL sein.

Rückgabewert

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

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

Der folgende Fehlercode ist spezifisch für diese Funktion.

Rückgabecode Beschreibung
ERROR_UNSUPPORTED_TYPE
Der Algorithmusobjektbezeichner (OID) des privaten Schlüssels wird nicht unterstützt.
 

Wenn die Funktion fehlschlägt, gibt GetLastError möglicherweise einen ASN.1-Codierungs-/Decodierungsfehler ( Abstract Syntax Notation One ) zurück. Informationen zu diesen Fehlern finden Sie unter ASN.1-Rückgabewerte für Codierung/Decodierung.

Hinweise

CryptImportPKCS8 ruft die PCRYPT_RESOLVE_HCRYPTPROV_FUNC-Funktion mithilfe der CRYPT_PKCS8_IMPORT_PARAMS-Struktur im sPrivateKeyAndParams-Parameter auf, um ein Handle des Anbieters abzurufen, in den der Schlüssel importiert werden soll. Wenn PCRYPT_RESOLVE_HCRYPTPROV_FUNCNULL ist, wird der Standardanbieter verwendet.

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

Anforderungen

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

Weitere Informationen

CRYPT_PKCS8_IMPORT_PARAMS

CryptExportPKCS8Ex

CryptReleaseContext

PCRYPT_DECRYPT_PRIVATE_KEY_FUNC

PCRYPT_RESOLVE_HCRYPTPROV_FUNC