-1

我需要用 CAdES-A 签名签署文件,并有一项服务可以提供给我。

现在,假设我签署了一个 GIF 文件。如果我得到正确的话,我从签名服务返回的是一个包含原始文档、签名和时间戳的信封。

我的问题是,至少在我所做的测试中,这不再是一个 GIF 文件,也就是说,我无法用图像查看器打开它并看到原始图像。

所以我的问题是:一旦我使用 CAdES-A 签署了任意类型的文档,如何打开它以访问其原始内容?

请注意:我的问题不是验证签名或时间戳(这工作正常),它真的是“看到”原始文档。另外,我知道如何为 PDF 做事。困扰我的是“任意格式”方面。

提前致谢。

4

2 回答 2

2

正如您所注意到的,包装签名隐藏了原始数据格式,使数据“不可用”。验证签名的库或服务也应该提供对原始数据的访问——只需重新检查其 API。或者如果它不可用,请使用另一个 API。

另一种方法是使用分离的签名——它们是分开存储和保存的,它们不会更改原始文件。如果您的代码同时创建和验证签名,这将起作用(我认为大多数第三方会期望单个签名的数据块而不是分离的签名)。

于 2013-10-15T14:26:04.390 回答
0

最后,我设法使用 openssl 从信封中取出原始文件:

openssl smime -verify -in x-click-but04.p7s -inform DER -signer certificate.cer -noverify -out x.gif

在哪里

  • certificate.cer 是用于签名的证书
  • x-click-but04.p7s 为封装签名,包含签名+原始文件+时间戳
  • x.gif(输出文件)是从信封中提取的原始文件
于 2014-05-12T13:27:18.743 回答