cryptSIPGetSignedDataMsg 函数 (mssip.h)

CryptSIPGetSignedDataMsg 函数从文件中检索验证码签名。

语法

BOOL CryptSIPGetSignedDataMsg(
  [in]      SIP_SUBJECTINFO *pSubjectInfo,
  [out]     DWORD           *pdwEncodingType,
  [in]      DWORD           dwIndex,
  [in, out] DWORD           *pcbSignedDataMsg,
  [out]     BYTE            *pbSignedDataMsg
);

参数

[in] pSubjectInfo

指向包含有关邮件主题信息的 SIP_SUBJECTINFO 结构的指针。

[out] pdwEncodingType

Authenticode 签名的编码类型。

此参数可以是以下一个或多个值的组合。

含义
PKCS_7_ASN_ENCODING
65536 (0x10000)
指定 PKCS #7 消息编码。
X509_ASN_ENCODING
1 (0x1)
指定 X.509 证书编码。

[in] dwIndex

此参数是保留的,应设置为零。

[in, out] pcbSignedDataMsg

pbSignedDataMsg 参数指向的缓冲区的长度(以字节为单位)。

[out] pbSignedDataMsg

指向用于接收返回的 Authenticode 签名的缓冲区的指针。

若要确定所需缓冲区的大小,请将 pbSignedDataMsg 参数设置为 NULL 并调用 CryptSIPGetSignedDataMsg 函数。 此函数会将所需缓冲区大小(以字节为单位)放在 由SignedDataMsg 指向的值中。 有关详细信息,请参阅 检索未知长度的数据

返回值

如果函数成功,则函数返回 TRUE

如果函数失败,则返回 FALSE。 有关扩展的错误信息,请调用 GetLastError。 下面是一些可能的错误代码。

返回代码 说明
CRYPT_E_NO_MATCH
找不到索引指定的签名。
ERROR_BAD_FORMAT
使用者接口包 (SIP) 的指定数据或文件格式无效。
ERROR_INVALID_PARAMETER
[SIP_SUBJECTINFO] (/windows/desktop/api/mssip/ns-mssip-sip_subjectinfo) 结构为空指针。
ERROR_INSUFFICIENT_BUFFER
消息缓冲区的大小不足以保存检索到的数据, 已设置的DbSignedDataMsg 参数来指示所需的缓冲区大小。
TRUST_E_SUBJECT_FORM_UNKNOWN
指定的主题类型无效。

注解

主题包括但不限于可移植的可执行映像 (.exe) 、cabinet (.cab) 映像、平面文件和目录文件。 每个主题类型使用其数据的不同子集进行哈希计算,并且需要不同的存储和检索过程。 因此,每个主题类型都具有唯一的 SIP 规范。

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 mssip.h
Library Crypt32.lib
DLL Crypt32.dll

另请参阅

CryptSIPPutSignedDataMsg

CryptSIPRemoveSignedDataMsg