CryptImportPKCS8 函式 (wincrypt.h)

[ CryptImportPKCS8 函式已不再可供 Windows Server 2008 和 Windows Vista 使用。 請改用 PFXImportCertStore 函式。]

重要 此 API 已被取代。 新的和現有的軟體應該開始使用 密碼編譯新一代 API。 Microsoft 可能會在未來的版本中移除此 API。
 
CryptImportPKCS8函式會將 PKCS #8 格式的私密金鑰匯入至密碼編譯服務提供者, (CSP) 。CryptImportPKCS8會將控制碼傳回給提供者,以及使用的匯入 KeySpec。

語法

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

參數

[in] sPrivateKeyAndParams

包含私密金鑰 BLOB和對應參數的CRYPT_PKCS8_IMPORT_PARAMS結構。

[in] dwFlags

DWORD值。 此參數可以是下列其中一個值、其組合或 Null 值。

意義
CRYPT_EXPORTABLE
匯入的金鑰最終會重新匯出。 如果未使用此旗標,則呼叫具有金鑰控制碼的 CryptExportKey 會失敗。
CRYPT_USER_PROTECTED
如果已設定此旗標,CSP 會在嘗試使用此金鑰時,透過對話方塊或其他方法通知使用者。 精確行為是由 CSP 或使用的 CSP 類型所指定。 如果已使用設定CRYPT_SILENT取得提供者內容,則使用此旗標會導致失敗,而最後一個錯誤會設定為NTE_SILENT_CONTEXT。

[out, optional] phCryptProv

HCRYPTPROV的指標,可藉由呼叫CryptImportPKCS8函式來接收金鑰所匯入之提供者的控制碼。

當您完成使用控制碼時,請呼叫 CryptReleaseCoNtext以釋放控制碼。

此參數可以是 Null,在此情況下不會傳回提供者的控制碼。

[in, optional] pvAuxInfo

此參數必須是 Null

傳回值

如果函式成功,函式會傳回非零 (TRUE) 。

如果函式失敗,它會傳回零 (FALSE) 。 如需擴充錯誤資訊,請呼叫 GetLastError

下列錯誤碼專屬於此函式。

傳回碼 描述
ERROR_UNSUPPORTED_TYPE
不支援 (OID) 私密金鑰的演算法 物件識別碼
 

如果函式失敗, GetLastError 可能會傳回 抽象語法標記法一 (ASN.1) 編碼/解碼錯誤。 如需這些錯誤的相關資訊,請參閱 ASN.1 編碼/解碼傳回值

備註

CryptImportPKCS8會使用sPrivateKeyAndParams參數中包含的CRYPT_PKCS8_IMPORT_PARAMS結構來呼叫PCRYPT_RESOLVE_HCRYPTPROV_FUNC函式,以擷取要匯入金鑰之提供者的控制碼。 如果 PCRYPT_RESOLVE_HCRYPTPROV_FUNCNull,則會使用預設提供者。

只有非對稱金鑰才支援此函式。

規格需求

   
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 wincrypt.h
程式庫 Crypt32.lib
Dll Crypt32.dll

另請參閱

CRYPT_PKCS8_IMPORT_PARAMS

CryptExportPKCS8Ex

CryptReleaseCoNtext

PCRYPT_DECRYPT_PRI加值稅E_KEY_FUNC

PCRYPT_RESOLVE_HCRYPTPROV_FUNC