Kon*_*sov 5 linux code-signing portable-executable trusted-timestamp
我需要在Linux上对PE文件(实际上是EFI)进行数字签名和时间戳.我发现签名PE文件3个工具:pesign,osslsigncode和signcode(单声道),但似乎没有一个很适合我的需要.问题是,密钥在硬件令牌上,无法导出.因此,我必须创建一个证书数据库,在那里添加令牌驱动程序条目并通过此DB工作.只pesign允许这样,但它不支持时间戳.osslsigncode并signcode支持时间戳,但他们无法使用数据库.
Windows signttool.exe可以作为单独的步骤执行签名和时间戳.所以我想,我可能会pesign用来签名文件,然后只用其他工具加盖时间戳.但是正如我发现的那样,osslsigncode并且signcode不支持单独的时间戳(在osslsigncode项目中它列在TODO文件中,但在存储库中没有它的迹象).
我错过了一些工具吗?有没有太低级别的库可以让我自己编写这样的程序吗?(最好是C/C++/Perl/Python.)我试图从中获取时间戳代码osslsigncode,但未能轻易地从之前的步骤中删除它(删除现有签名并添加新签名).
PS我也尝试signtool.exe在葡萄酒下运行,但1)未能使它运转,2)我不确定它是否合法允许(我不擅长分析EULA).
自 2015 年 3 月起, osslsigncode中有一个补丁,允许您通过 PKCS#11 令牌上的密钥对代码进行签名。它还不是正式版本的一部分。所以你必须自己构建它,但它对我来说就像魅力一样。
调用示例如下所示:
osslsigncode sign -pkcs11engine /usr/lib/engines/engine_pkcs11.so -pkcs11module /usr/lib/libeTPkcs11.so -certs ~/mysigningcert.pem -key 0:42ff -in ~/filetosign.exe -out ~/signedfile.exe
Run Code Online (Sandbox Code Playgroud)
该-pkcs11module开关以 PKCS#11 库作为参数,参数格式-key为slotID:keyID。
| 归档时间: |
|
| 查看次数: |
780 次 |
| 最近记录: |