CryptMsgCountersignEncoded 函数 (wincrypt.h)
CryptMsgCountersignEncoded 函数对现有 PKCS #7 消息签名进行反签名。 它创建的 pbCountersignatureBYTE 缓冲区是 PKCS #7 编码的 SignerInfo,可用作 PKCS #9 签名数据或签名和信封数据消息的未经身份验证 Countersignature 属性。
语法
BOOL CryptMsgCountersignEncoded(
[in] DWORD dwEncodingType,
[in] PBYTE pbSignerInfo,
[in] DWORD cbSignerInfo,
[in] DWORD cCountersigners,
[in] PCMSG_SIGNER_ENCODE_INFO rgCountersigners,
[out] PBYTE pbCountersignature,
[in, out] PDWORD pcbCountersignature
);
参数
[in] dwEncodingType
指定使用的编码类型。 目前,仅使用X509_ASN_ENCODING和PKCS_7_ASN_ENCODING;但是,将来可能会添加其他编码类型。 对于任一当前编码类型,请使用:
X509_ASN_ENCODING |PKCS_7_ASN_ENCODING。
[in] pbSignerInfo
指向要反签名的编码 SignerInfo 的指针。
[in] cbSignerInfo
编码的 SignerInfo 数据的计数(以字节为单位)。
[in] cCountersigners
rgCountersigners 数组中的计数器数。
[in] rgCountersigners
计数器 CMSG_SIGNER_ENCODE_INFO 结构的数组。
[out] pbCountersignature
指向缓冲区的指针,用于接收编码的 PKCS #9 countersignature 属性。
在输入时,此参数可以 NULL,以便为内存分配设置此信息的大小。 有关详细信息,请参阅 检索未知长度的数据。
[in, out] pcbCountersignature
指向一个变量的指针,该变量指定 pbCountersignature 参数指向的缓冲区的大小(以字节为单位)。 函数返回时, 参数指向的变量包含缓冲区中存储的字节数。
返回值
如果函数成功,则返回值为非零(TRUE)。
如果函数失败,则返回值为零(FALSE)。 有关扩展错误信息,请调用 GetLastError。
下表列出了 GetLastError 函数最常返回的错误代码。
返回代码 | 描述 |
---|---|
|
对象标识符的格式不正确。 |
|
一个或多个参数无效。 |
|
内存不足。 |
传播的错误可能从以下函数之一返回:
- CryptCreateHash
- CryptHashData
- CryptGetHashParam
- CryptSignHash
- CryptMsgOpenToEncode
- CryptMsgUpdate
- CryptMsgControl
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows XP [桌面应用 |UWP 应用] |
支持的最低服务器 | Windows Server 2003 [桌面应用 |UWP 应用] |
目标平台 | 窗户 |
标头 | wincrypt.h |
库 | Crypt32.lib |
DLL | Crypt32.dll |