CRYPT_VERIFY_MESSAGE_PARA 结构 (wincrypt.h)

CRYPT_VERIFY_MESSAGE_PARA结构包含验证已签名消息所需的信息。

语法

typedef struct _CRYPT_VERIFY_MESSAGE_PARA {
  DWORD                            cbSize;
  DWORD                            dwMsgAndCertEncodingType;
  HCRYPTPROV_LEGACY                hCryptProv;
  PFN_CRYPT_GET_SIGNER_CERTIFICATE pfnGetSignerCertificate;
  void                             *pvGetArg;
  PCCERT_STRONG_SIGN_PARA          pStrongSignPara;
} CRYPT_VERIFY_MESSAGE_PARA, *PCRYPT_VERIFY_MESSAGE_PARA;

成员

cbSize

此结构的大小(以字节为单位)。

dwMsgAndCertEncodingType

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

X509_ASN_ENCODING |PKCS_7_ASN_ENCODING

当前定义的编码类型包括:

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

hCryptProv

此成员未使用,应设置为 NULL

Windows Server 2003 和 Windows XP: 用于验证已签名消息的 加密服务提供程序 的句柄。 此句柄标识的 CSP 用于 哈希 和签名验证。除非有使用特定加密提供程序的强烈原因,否则将 设置为零以使用默认 RSA 或 DSS 提供程序。

此成员的数据类型为 HCRYPTPROV

pfnGetSignerCertificate

指向用于获取签名者证书 上下文的回调函数的指针。 如果 为 NULL,则使用默认回调。 默认回调尝试从消息的证书存储中获取签名者证书上下文

可以使用获取签名者证书的应用程序定义回调函数来代替默认值。 它传递签名者的证书标识符 (其颁发者、序列号) 以及其加密签名消息的证书存储的句柄。

有关回调函数签名和参数,请参阅 CryptGetSignerCertificateCallback

pvGetArg

要传递给回调函数的参数。 通常,这会获取并验证消息签名者的证书。

pStrongSignPara

指向包含用于强签名的参数 的CERT_STRONG_SIGN_PARA 结构的可选指针。 如果设置此成员且函数成功验证签名,则该函数将检查强签名。 如果签名不强,操作将失败,并将 GetLastError 值设置为 NTE_BAD_ALGID

注意仅当在包含 Wincrypt.h 之前使用 #define 指令定义CRYPT_VERIFY_MESSAGE_PARA_HAS_EXTRA_FIELDS时,才能使用 pStrongSignPara 成员。 如果定义了 CRYPT_VERIFY_MESSAGE_PARA_HAS_EXTRA_FIELDS ,则必须将所有未使用的字段归零。
 
Windows 8和Windows Server 2012:开始支持此成员。

注解

此结构将传递给以下函数:

要求

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

另请参阅

CERT_CONTEXT

CERT_INFO

CryptDecryptAndVerifyMessageSignature

CryptVerifyDetachedMessageSignature

CryptVerifyMessageSignature