har*_*per 6 certificate x509certificate windows-embedded-compact
对于启用了安全性加载程序的WEC2013平台,我创建了一个自签名证书。证书具有以下属性
Key Usage: Digital Signature (80)
Enhanced Key Usage: Code Signing (1.3.6.1.5.5.7.3.3)
Run Code Online (Sandbox Code Playgroud)
证书已导出到文件ciroots.p7b和PFX文件。该ciroots.p7b描述已被添加到WEC2013平台Files文件夹位置。使用该平台构建的OS设计包括该文件的副本ciroots.p7b。
PFX已用于使用以下命令对文件进行签名
signtool -f /path/to/PFX -p ThePassword example.exe
Run Code Online (Sandbox Code Playgroud)
这与描述相符。signtool命令修改了.EXE。生成的文件比原始文件大1kB。
在目标上启动OS设计并将签名的.EXE复制到目标后,应该可以执行该程序。但是开始失败并显示以下消息:
无法执行example.EXE
在WEC2013文档中描述的步骤中我错过了什么?如何准备可执行文件以在启用LVMOD的OS设计上运行?
尽管在签名过程中没有错误消息,但我可能错过了一些重要的属性。使用LVMOD进行代码签名的证书有什么要求?
编辑: 对应于丹尼尔斯评论,我使用了signtool来验证签名文件。该证书已安装在“受信任”存储区中的PC上(系统询问我是否要信任该证书)。使用SignTool验证文件签名时运行signtool,结果如下:
C:\Test>signtool verify example.exe
SignTool Error: A certificate chain processed, but terminated in a root
certificate which is not trusted by the trust provider.
Number of errors: 1
C:\Test>signtool verify /pa example.exe
Successfully verified: example.exe
C:\Test>
Run Code Online (Sandbox Code Playgroud)
第一次调用失败,如signtool文档中所述:
如果前面的示例失败,则可能是签名使用了代码签名证书。SignTool默认使用Windows驱动程序策略进行验证。
| 归档时间: |
|
| 查看次数: |
103 次 |
| 最近记录: |