CryptGetMessageSignerCount 函数 (wincrypt.h)
CryptGetMessageSignerCount 函数返回已签名消息的签名者数。
注意
此函数可能会返回重复签名者的计数,因此可能不足以避免攻击。 建议使用 SignerInfo 中的 sid (SignerIdentifier) 字段来标识消息中的重复登录者。
语法
LONG CryptGetMessageSignerCount(
[in] DWORD dwMsgEncodingType,
[in] const BYTE *pbSignedBlob,
[in] DWORD cbSignedBlob
);
参数
[in] dwMsgEncodingType
指定使用的编码类型。 始终可以通过将证书和 消息编码类型 与按位 OR 操作结合使用来指定它们,如以下示例所示:
X509_ASN_ENCODING |PKCS_7_ASN_ENCODING
当前定义的编码类型为:
- X509_ASN_ENCODING
- PKCS_7_ASN_ENCODING
[in] pbSignedBlob
指向包含已签名消息的缓冲区的指针。
[in] cbSignedBlob
已签名消息的大小(以字节为单位)。
返回值
返回已签名消息的签名者数,如果没有签名者,则返回 0;如果错误,则返回 1 (-1) 。
有关扩展的错误信息,请调用 GetLastError。 最常返回以下错误代码。
返回代码 | 说明 |
---|---|
|
消息编码类型无效。 目前仅支持PKCS_7_ASN_ENCODING。 |
如果函数失败, GetLastError 可能会返回 抽象语法表示法 One (ASN.1) 编码/解码错误。 有关这些错误的信息,请参阅 ASN.1 编码/解码返回值。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | wincrypt.h |
Library | Crypt32.lib |
DLL | Crypt32.dll |