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_OID_PUBKEY_ENCRYPT_ONLY_FLAG标志显式标记的CRYPT_PUBKEY_ALG_OID_GROUP_ID组中的公钥。
CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG
跳过使用CRYPT_OID_PUBKEY_SIGN_ONLY_FLAG标志显式标记的CRYPT_PUBKEY_ALG_OID_GROUP_ID组中的公钥。
 

将公钥对象标识符映射到相应的 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 应用]
目标平台 窗户
标头 wincrypt.h
Crypt32.lib
DLL Crypt32.dll

另请参阅

CERT_PUBLIC_KEY_INFO