CryptImportPublicKeyInfoEx2 函数 (wincrypt.h)

CryptImportPublicKeyInfoEx2 函数将公钥导入 CNG 非对称提供程序,该提供程序对应于 OID) 公钥对象标识符 (,并返回密钥的 CNG 句柄。

语法

BOOL CryptImportPublicKeyInfoEx2(
  [in]  DWORD                 dwCertEncodingType,
  [in]  PCERT_PUBLIC_KEY_INFO pInfo,
  [in]  DWORD                 dwFlags,
  [in]  void                  *pvAuxInfo,
  [out] BCRYPT_KEY_HANDLE     *phKey
);

参数

[in] dwCertEncodingType

用于加密使用者的 证书编码类型 。 此函数将忽略包含在此值的高 WORD 中的消息编码类型标识符。

此参数可以是以下当前定义的证书编码类型。

含义
X509_ASN_ENCODING
1 (0x1)
指定 X.509 证书编码。

[in] pInfo

包含要导入到提供程序的公钥信息的 CERT_PUBLIC_KEY_INFO 结构的地址。

[in] dwFlags

一组标志,用于修改此函数的行为。 这可以是零,也可以是以下一个或多个值的组合。

含义
CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG
跳过CRYPT_PUBKEY_ALG_OID_GROUP_ID组中使用CRYPT_OID_PUBKEY_ENCRYPT_ONLY_FLAG标志显式标记的公钥。
CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG
跳过CRYPT_PUBKEY_ALG_OID_GROUP_ID组中使用CRYPT_OID_PUBKEY_SIGN_ONLY_FLAG标志显式标记的公钥。
 

将公钥对象标识符映射到相应的 CNG 公钥算法标识符时,这些标志在 CryptFindOIDInfo 函数的 dwKeyType 参数中传递。

[in] pvAuxInfo

此参数保留供将来使用,必须设置为 NULL

[out] phKey

接收导入密钥句柄 的BCRYPT_KEY_HANDLE 变量的地址。

如果不再需要此句柄,则必须通过调用 BCryptDestroyKey 函数释放它。

返回值

如果函数成功,则函数) 返回非零 (TRUE

如果函数失败,它将返回零 (FALSE) 。 有关扩展的错误信息,请调用 GetLastError。 可能的错误代码包括但不限于以下内容。

返回代码 说明
ERROR_FILE_NOT_FOUND
找不到可安装或注册的指定 dwCertEncodingTypepInfo 参数的导入函数。
E_INVALIDARG
一个或多个参数无效。

要求

   
最低受支持的客户端 Windows Vista [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2008 [桌面应用 | UWP 应用]
目标平台 Windows
标头 wincrypt.h
Library Crypt32.lib
DLL Crypt32.dll

另请参阅

CERT_PUBLIC_KEY_INFO