CertIsStrongHashToSign 函数 (wincrypt.h)

确定是否可以使用签名证书中的指定哈希算法和公钥来执行强签名。

语法

BOOL CertIsStrongHashToSign(
  [in]           PCCERT_STRONG_SIGN_PARA pStrongSignPara,
  [in]           LPCWSTR                 pwszCNGHashAlgid,
  [in, optional] PCCERT_CONTEXT          pSigningCert
);

参数

[in] pStrongSignPara

指向 CERT_STRONG_SIGN_PARA 结构的指针,该结构包含有关支持的签名和哈希算法的信息。

[in] pwszCNGHashAlgid

指向包含哈希算法名称的 Unicode 字符串的指针。 支持以下算法:

  • L“MD5” (BCRYPT_MD5_ALGORITHM)
  • L“SHA1” (BCRYPT_SHA1_ALGORITHM)
  • L“SHA256” (BCRYPT_SHA256_ALGORITHM)
  • L“SHA256” (BCRYPT_SHA256_ALGORITHM)
  • L“SHA512” (BCRYPT_SHA512_ALGORITHM)

[in, optional] pSigningCert

指向包含签名证书 的CERT_CONTEXT 结构的指针。 检查签名证书中的公钥算法的强度。 公钥 (非对称) 算法用于签名。 支持以下签名算法:

  • L“RSA” (BCRYPT_RSA_ALGORITHM)
  • L“DSA” (BCRYPT_DSA_ALGORITHM)
  • L“ECDSA” (SSL_ECDSA_ALGORITHM)
如果只想检查哈希算法是否强,此参数可以为 NULL

返回值

如果该函数成功,则函数返回 TRUE

如果函数失败,则返回 FALSE。 有关扩展的错误信息,请调用 GetLastError。 此函数具有以下错误代码。

返回代码 说明
E_INVALIDARG
一个或多个输入参数不正确。
NTE_BAD_ALGID
不支持指定的算法。

要求

要求
最低受支持的客户端 Windows 8 [仅限桌面应用]
最低受支持的服务器 Windows Server 2012 [仅限桌面应用]
目标平台 Windows
标头 wincrypt.h
Library Crypt32.lib
DLL Crypt32.dll

另请参阅

CERT_STRONG_SIGN_PARA