SignerSignEx 函数

SignerSignEx 函数对指定的文件进行签名,并返回指向已签名数据的指针。

注意

此函数没有关联的头文件或导入库。 若要调用此函数,必须创建用户定义的头文件,并使用 LoadLibraryGetProcAddress 函数动态链接到Mssign32.dll。

 

语法

HRESULT WINAPI SignerSignEx(
  _In_     DWORD                 dwFlags,
  _In_     SIGNER_SUBJECT_INFO   *pSubjectInfo,
  _In_     SIGNER_CERT           *pSignerCert,
  _In_     SIGNER_SIGNATURE_INFO *pSignatureInfo,
  _In_opt_ SIGNER_PROVIDER_INFO  *pProviderInfo,
  _In_opt_ LPCWSTR               pwszHttpTimeStamp,
  _In_opt_ PCRYPT_ATTRIBUTES     psRequest,
  _In_opt_ LPVOID                pSipData,
  _Out_    SIGNER_CONTEXT        **ppSignerContext
);

parameters

dwFlags [in]

修改此函数的行为。

如果要签名的文件是可移植的可执行文件 (PE) 文件,则它可以是零,也可以是以下一个或多个值的组合。 这些标识符在 Mssip.h 中定义。

含义
SPC_EXC_PE_PAGE_HASHES_FLAG
0x10
为 PE 文件创建 SIP 间接数据时排除页哈希。 此标志优先于 SPC_INC_PE_PAGE_HASHES_FLAG 标志。
如果 SPC_EXC_PE_PAGE_HASHES_FLAGSPC_INC_PE_PAGE_HASHES_FLAG 标志均未指定,则使用 WintrustSetDefaultIncludePEPageHashes 函数设置的值用于此设置。 此设置的默认设置是在为 PE 文件创建 SIP 间接数据时排除页面哈希。
Windows Server 2003 和 Windows XP: 不支持此值。
SPC_INC_PE_IMPORT_ADDR_TABLE_FLAG
0x20
不支持此值。
SPC_INC_PE_DEBUG_INFO_FLAG
0x40
不支持此值。
SPC_INC_PE_RESOURCES_FLAG
0x80
不支持此值。
SPC_INC_PE_PAGE_HASHES_FLAG
0x100
为 PE 文件创建 SIP 间接数据时,包括页面哈希。
Windows Server 2003 和 Windows XP: 不支持此值。

 

pSubjectInfo [in]

指向 SIGNER_SUBJECT_INFO 结构的指针,该结构指定要签名的主题。

pSignerCert [in]

指向 SIGNER_CERT 结构的指针,该结构指定要用于创建数字签名的证书。

pSignatureInfo [in]

指向包含数字签名相关信息 的 SIGNER_SIGNATURE_INFO 结构的指针。

pProviderInfo [in, optional]

指向 SIGNER_PROVIDER_INFO 结构的指针,该结构指定加密 服务提供商 (用于创建数字签名的 CSP) 和私钥信息。

如果此参数的值为 NULL,则 pSignerCert 参数的值必须指定与 CSP 关联的证书。

pwszHttpTimeStamp [in, optional]

时间戳服务器的 URL。

psRequest [in, optional]

指向添加到签名请求的 CRYPT_ATTRIBUTE 结构的数组的指针。 如果 pwszHttpTimeStamp 参数不包含非 NULL 的有效值,则忽略此参数。

pSipData [in, optional]

作为附加数据传递给 SIP 函数的 32 位值。 此格式和内容由 SIP 提供程序定义。

ppSignerContext [out]

指向包含已签名 BLOB的 SIGNER_CONTEXT 结构的指针的地址。 使用完 SIGNER_CONTEXT 结构后,通过调用 SignerFreeSignerContext 函数释放SIGNER_CONTEXT结构。

返回值

如果函数成功,该函数将返回S_OK。

如果函数失败,它将返回指示错误的 HRESULT 值。 有关常见错误代码的列表,请参阅 常见 HRESULT 值

要求

要求
最低受支持的客户端
Windows XP [仅限桌面应用]
最低受支持的服务器
Windows Server 2003 [仅限桌面应用]
DLL
Mssign32.dll

另请参阅

SignerSign

SignerFreeSignerContext