关于我在尝试使用SHA1 1/SHA1 256进行双签名时遇到的一个失败的问题。
我有一个SHA256代码签名证书已经有几年了,但是在新的一年(2016年)之前,我开始使用/fd SHA256来实现哈希算法,以满足微软对SHA1的排斥。
这很好,但当然签名散列不会在旧操作系统上验证。我不关心XP,但我仍然有点关心Vista。
我首先使用以下方法为SHA1签名:
signtool sign /fd SHA1 /f "cert.pfx" /p "password" /t http://timestamp.verisign.com/scripts/timsetamp.dll "file"然后我尝试我的双重签名:
signtool sign /as /fd SHA256 /f "cert.pfx" /p "password" /tr http://timestamp.globalsign.com/?signature=sha2 "file"路标工具给了我这个:
Done Adding Additional Store
SignTool Error: An unexpected internal error has occurred.
Error information: "Error: SignerSign() failed." (-2147024846/0x80070032)
现在,我可以使用一个单独的算法( SHA1或SHA256)成功地对一个文件进行签名,但是我不能添加第二个签名。我唯一的猜测是,因为我在这两种算法中使用相同的证书,所以它不喜欢这一点。是否需要为每种算法提供不同的物理证书?
我只是好奇,因为在新的一年前,我已经使用了多年的SHA256证书,并且使用了SHA1算法,它在所有操作系统上都验证得很好。
发布于 2017-05-12 22:12:04
这是来自错误匹配的dlls。signtool.exe需要正确的wintrust.dll和mssign32.dll,否则只有在双重签名时才能得到0x80070032。这个站点有8.1下载,所以您不需要完整的SDK http://ksoftware.freshdesk.com/support/solutions/articles/17170-how-do-i-use-ksign-to-digitally-sign-files-签名工具8.1在8.1.zip上
发布于 2022-03-26 23:29:24
我也有同样的问题,SDK8.1中的签名工具(6.3.9600.17298)似乎对命令行选项的顺序非常挑剔!
如果我用signtool sign /v /f my.pfx /p 1234 /fd sha256 /as test.exe
双签名失败,此错误为:"Multiple signature support is not implemented for this filetype"
实际上,这与W10 SDK中的错误相同,因为-2147024846/0x80070032转换为(HRESULT)ERROR_NOT_SUPPORTED。
但是,如果我使用signtool sign /v /f my.pfx /p 1234 /as /fd sha256 test.exe,它就成功了!
看到我在那做了什么吗?我刚换了/as和/fd sha256的顺序!
我的意思是,这些东西只是噩梦燃料,当你在做一些重要的事情时,当它开始生产的时候,它似乎毫无原因地起不到作用。幸运的是,这次不是这样,因为我只是在测试,但我认为我是疯了,因为我第一次让它工作一次,但不是再次。
要明确的是,这是我如何使用SHA1和SHA256双符号文件的确切顺序,使用Windows8.1SDK中的signtool.exe、可用的这里 ( W10 SDK中的一个仍然不工作,而V7.1SDK中的一个根本不支持多个签名)。
signtool sign /v /f my.pfx /p 1234 test.exe签名signtool sign /v /f my.pfx /p 1234 /as /fd sha256 test.exe签名https://stackoverflow.com/questions/35249059
复制相似问题