【问题标题】:WinVerifyTrust fails rarelyWinVerifyTrust 很少失败
【发布时间】:2011-05-04 17:02:29
【问题描述】:

我使用 winverifytrust 来验证签名。

我正在使用 WINTRUST_ACTION_GENERIC_VERIFY_V2 进行验证。但它很少返回“NO SIGNATURE FOUND”。我无法模拟这个问题。

我收到了一些用户正在发生这种情况的反馈。一个反馈有一个日志,表明对文件的第一次 WinVerifyTrust 调用成功,而对同一文件的第二次调用失败。

我使用的代码正是

http://msdn.microsoft.com/en-us/library/aa382384%28v=VS.85%29.aspx

知道可能导致失败的原因。对同一个文件的相同调用成功了一次,然后又失败了。

【问题讨论】:

  • 这可能会对您有所帮助。参考:link@user738471

标签: winverifytrust


【解决方案1】:

查看链接的 MS 示例,如果遇到 TRUST_E_NOSIGNATURE,则需要检查 GetLastError() 以获取进一步的 TRUST_E_ 错误代码。

TRUST_E_NOSIGNATURE 的逻辑还包括:

 else 
 {
   // The signature was not valid or there was an error 
   // opening the file.

所以看来 IO 错误也可能导致这种情况(锁定的文件可以解释间歇性)GetLastError() 应该阐明的任何一种方式。

【讨论】:

    【解决方案2】:

    在 Windows Server 2008 上使用仅使用 SHA-256 签名的文件调用 WinVerifyTrust 时会发生这种情况,

    Server 2008 默认不支持,它需要使用 SHA-1 的签名

    【讨论】:

      【解决方案3】:

      http://winwiki.org/wiki/wikimeta.php?kw=Error+Trust_e_nosignature%280x800b0100%29

      Error Trust_e_nosignature(0x800b0100)错误可能是windows系统文件损坏造成的。

      本文包含向您展示如何(手动)和(自动)修复错误 Trust_e_nosignature(0x800b0100) 的信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-25
        • 1970-01-01
        • 2019-04-21
        • 1970-01-01
        • 2016-11-14
        • 2021-12-19
        相关资源
        最近更新 更多