我们有一个文件,比如说scup.jpg,我们要签名并(稍后)用 signtool 进行验证。
对于嵌入式内容,我们执行
signtool.exe sign /p7 .\ /p7ce embedded /p7co 1.2.840.113549.1.7.2 /a /f .\pfx.p12 /p "somepass" .\scup.jpg
并生成一个名为scup.jpg.p7的文件,该文件可通过以下命令验证:
signtool.exe verify /p7 scup2.jpg.p7
但我们需要的不是嵌入式数据,而是分离式签名,因此我们将签名命令更改为
signtool.exe sign /p7 .\ /p7ce DetachedSignedData /p7co 1.2.840.113549.1.7.2 /a /f .\pfx.p12 /p "somepass" .\scup.jpg
并生成一个名为scup2.jpg.p7的分离签名文件,但无论我们尝试验证签名的是什么命令选项,signtool都会给我们错误,比如tis:
SignTool Error: CryptVerifyMessageSignature returned error: 0x8009310B
ASN1 bad tag value met.
SignTool Error: File not valid: scup.jpg.p7
Number of errors: 1
我们做错了什么,是否可以使用 signtool 验证分离的签名?我知道我可以使用openssl或progarmming工具/ API,但目前我需要明确 signtool itelf。