SignerTimeStampEx3 函数

SignerTimeStampEx3 函数标记指定的主题,并支持在多个签名上设置时间戳。

注意

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

 

语法

HRESULT WINAPI SignerTimeStampEx3(
  _In_       DWORD                  dwFlags,
  _In_       DWORD                  dwIndex,
  _In_       SIGNER_SUBJECT_INFO    *pSubjectInfo,
  _In_       PCWSTR                 pwszHttpTimeStamp,
  _In_       PCWSTR                 pszAlgorithmOid,
  _In_opt_   PCRYPT_ATTRIBUTES      psRequest,
  _In_opt_   PVOID                  pSipData,
  _Out_      SIGNER_CONTEXT         **ppSignerContext,
  _In_opt_   PCERT_STRONG_SIGN_PARA pCryptoPolicy,
  _Reserved_ PVOID                  pReserved
);

参数

dwFlags [in]

指定要生成的时间戳类型的标志。 此参数的取值可为下列值之一: 这些值是互斥的。

含义
SIGNER_TIMESTAMP_AUTHENTICODE
指定验证码时间戳。
注意: 验证码不再是首选的时间戳类型。 将来可能会删除对 Authenticode 时间戳的支持。 建议改用 RFC 3161。
SIGNER_TIMESTAMP_RFC3161
指定符合 RFC 3161 的时间戳。

 

dwIndex [in]

指定要向其添加时间戳的签名的序列号。 如果此值为零 (0) ,则外部签名将带有时间戳。

pSubjectInfo [in]

表示要加时间戳的主题 的SIGNER_SUBJECT_INFO 结构的地址。

pwszHttpTimeStamp [in]

包含时间戳服务器的 URL 的以 null 结尾的 Unicode 字符串的地址。

pszAlgorithmOid [in]

用于执行符合 RFC 3161 的时间戳的哈希算法。 对于 Authenticode 时间戳,将忽略此参数。

psRequest [in, optional]

可选。 包含添加到时间戳请求的其他属性的 CRYPT_ATTRIBUTES 结构的地址。

此参数是可选的,如果未包含此参数,可为 NULL

pSipData [in, optional]

可选。 一个 32 位值,作为附加数据传递给 主题接口包 (SIP) 函数。 此参数的格式和内容由 SIP 提供程序定义。

此参数是可选的,如果未包含此参数,可为 NULL

ppSignerContext [out]

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

pCryptoPolicy [in, optional]

如果存在,则为指向CERT_STRONG_SIGN_PARA 结构的指针,该结构包含用于检查强签名的参数。 时间戳必须通过此加密策略。

pReserved

保留。 此值必须为 NULL

返回值

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

如果函数失败,它将返回指示错误的 HRESULT 值。 此函数返回的可能错误代码包括但不限于以下内容。 有关常见错误代码的列表,请参阅 常见 HRESULT 值

返回代码 说明
E_INVALIDARG
对于以下情况,可能会返回此错误:
  • 必须为 dwFlags 参数设置SIGNER_TIMESTAMP_AUTHENTICODESIGNER_TIMESTAMP_RFC3161
  • pReserved 参数必须为 NULL
  • 如果在 dwFlags 参数中设置SIGNER_TIMESTAMP_AUTHENTICODE标志,则必须将 dwIndex 参数设置为零。

 

要求

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

另请参阅

SignerTimeStamp

SignerTimeStampEx

SignerTimeStampEx2