我使用winverifytrust验证签名。
我正在使用WINTRUST_ACTION_GENERIC_VERIFY_V2进行验证。但它很少回归“没有签名”。我无法模拟这个问题。
我收到一些用户发生这种情况的反馈。一个反馈有一个日志,表明第一次调用文件的WinVerifyTrust成功,第二次调用同一个文件失败。
我使用的代码正是
http://msdn.microsoft.com/en-us/library/aa382384%28v=VS.85%29.aspx
知道可能导致失败的原因。对同一文件的相同调用已成功一次,然后失败。
答案 0 :(得分:1)
如果遇到TRUST_E_NOSIGNATURE
,请查看您关联的MS示例,然后您需要检查GetLastError()
是否还有TRUST_E_
错误代码。
TRUST_E_NOSIGNATURE
的逻辑还包括;
else
{
// The signature was not valid or there was an error
// opening the file.
因此,似乎IO错误也可能导致这种情况(锁定的文件可以解释间歇性)GetLastError()
应该解释。
答案 1 :(得分:0)
http://winwiki.org/wiki/wikimeta.php?kw=Error+Trust_e_nosignature%280x800b0100%29
错误Trust_e_nosignature(0x800b0100)错误可能是由Windows系统文件损坏引起的。
本文包含的信息向您展示如何(手动)和(自动)修复错误Trust_e_nosignature(0x800b0100)。
答案 2 :(得分:0)
在Windows Server 2008上使用仅使用SHA-256签名的文件调用WinVerifyTrust时会发生这种情况,
默认情况下,在Server 2008上不支持,它需要使用SHA-1 的签名。