PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC回调函数 (wincrypt.h)

如果签名包含编码参数,则调用 PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC 回调函数来解码并返回哈希算法标识符和签名参数(可选)。

语法

PFN_CRYPT_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC PfnCryptExtractEncodedSignatureParametersFunc;

BOOL PfnCryptExtractEncodedSignatureParametersFunc(
  [in]            DWORD dwCertEncodingType,
  [in]            PCRYPT_ALGORITHM_IDENTIFIER pSignatureAlgorithm,
  [out, optional] void **ppvDecodedSignPara,
  [out]           LPWSTR *ppwszCNGHashAlgid
)
{...}

参数

[in] dwCertEncodingType

指定使用的编码类型。 始终可以接受将证书和 消息编码类型 与按位 OR 操作组合在一起,如以下示例所示:

X509_ASN_ENCODING |PKCS_7_ASN_ENCODING当前定义的编码类型为:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pSignatureAlgorithm

指向 CRYPT_ALGORITHM_IDENTIFIER 结构的指针,该结构包含 OID) 及其可选编码参数 (签名 对象标识符

[out, optional] ppvDecodedSignPara

指向已解码和分配的签名参数数据结构的地址的指针。 返回解码的缓冲区是可选的。

[out] ppwszCNGHashAlgid

指向分配的 Unicode 字符串地址的指针,该字符串表示从编码签名参数中提取的 CNG 哈希算法标识符。 如果此函数返回 TRUE,则必须返回非 NULL 指针。

返回值

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

如果函数失败,它将返回零 (FALSE) 。 有关扩展的错误信息,请调用 GetLastError

如果此回调函数不支持签名算法,则必须返回 FALSE 并使用 ERROR_NOT_SUPPORTED调用 SetLastError

注解

必须使用 LocalAlloc 函数分配 ppvDecodedSignParappwszCNGHashAlgid 参数的内存。

可以使用 OID 支持函数 部署此回调函数。 Wincrypt.h 为此定义以下常量。

一直 定义
CRYPT_OID_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC “CryptDllExtractEncodedSignatureParameters”

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 wincrypt.h