CRYPT_KEY_SIGN_MESSAGE_PARA 结构 (wincrypt.h)

CRYPT_KEY_SIGN_MESSAGE_PARA 结构包含有关加密服务提供程序 (CSP) 和用于对消息进行签名的算法的信息。

语法

typedef struct _CRYPT_KEY_SIGN_MESSAGE_PARA {
  DWORD                      cbSize;
  DWORD                      dwMsgAndCertEncodingType;
  union {
    HCRYPTPROV        hCryptProv;
    NCRYPT_KEY_HANDLE hNCryptKey;
  } DUMMYUNIONNAME;
  DWORD                      dwKeySpec;
  CRYPT_ALGORITHM_IDENTIFIER HashAlgorithm;
  void                       *pvHashAuxInfo;
  CRYPT_ALGORITHM_IDENTIFIER PubKeyAlgorithm;
} CRYPT_KEY_SIGN_MESSAGE_PARA, *PCRYPT_KEY_SIGN_MESSAGE_PARA;

成员

cbSize

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

dwMsgAndCertEncodingType

指定使用的消息类型和证书编码。 这可以是以下一个或多个值的组合。

含义
X509_ASN_ENCODING
指定 X.509 证书编码。
PKCS_7_ASN_ENCODING
指定 PKCS 7 消息编码。

DUMMYUNIONNAME

DUMMYUNIONNAME.hCryptProv

用于对消息进行签名的 CSP 的句柄。 调用 CryptAcquireContext 函数以获取此句柄。

DUMMYUNIONNAME.hNCryptKey

加密 API 的句柄:下一代 (CNG) CSP 用于对消息进行签名。 CNG 签名算法仅在 CNG 函数中受支持。

dwKeySpec

标识用于对消息进行签名的 私钥 类型。 这必须是以下值之一。 如果在 hNCryptKey 成员中传递 CNG 密钥,则忽略此成员。

含义
AT_KEYEXCHANGE
使用密钥交换密钥。
AT_SIGNATURE
使用数字签名密钥。

HashAlgorithm

一个 CRYPT_ALGORITHM_IDENTIFIER 结构,指定用于生成消息哈希的算法。 这必须是哈希算法。

pvHashAuxInfo

此成员未使用,必须设置为 NULL

PubKeyAlgorithm

CRYPT_ALGORITHM_IDENTIFIER结构,指定用于对消息进行签名的算法。 这必须是公钥或签名算法。

要求

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