6

我的应用程序中有一个 PDF 查看器。我只是将 PDF 文件加载到 UIWebView 中。但是当 PDF 包含数字签名时,它不会显示在 WebView 中。显示 PDF 的所有其他内容。只有签名区域是空白的。我检查了预览,也检查了 OSX 中的 Safari,结果是一样的。

然后我下载了 Mac 版 Adob​​e Reader 应用程序,并尝试打开 PDF。它正确显示了签名!

谁能告诉我目标C中是否有任何机制来显示PDF文件的签名。

4

1 回答 1

1

Adobe 记录了如何在 PDF 文件中使用数字签名。请参阅Adob​​e PDF 1.7 规范第 466 页第 12.8 节。

但是,正如您所发现的,许多 pdf 文件查看器,包括 Google Chrome 内置的 pdf 查看器会忽略数字签名。这是相当不幸的,因为数字签名变得越来越流行。

如果您还没有这样做,请针对 UIWebView 提交错误报告。或功能增强请求。添加完整的数字签名支持并非易事,但它是一个很棒的功能。

添加数字签名支持

作为支持的第一步,您可以考虑仅显示有关文档数字签名的信息并进行验证。-- 不仅要显示数字签名很重要,您还需要验证它们。

恕我直言,验证的最重要部分是验证文件自签署以来没有更改。验证您是否信任签名者证书的根证书是件好事,但在实践中,它不如文档完整性重要。另一方面,这一切都取决于您的应用程序及其环境。

作为第二步,您可以在文档页面的正确位置显示通常包含在数字签名中的图形签名。

pdf 包含多个数字签名是很常见的。pdf 包含多个“电子签名”以及验证数字签名也很常见。

“电子签名”只是显示在 pdf 页面上的图形签名。它不涉及任何加密功能,不保证文档完整性,也不保证签名者不可否认性(不涉及签名者证书)。

因为数字签名需要实时验证,所以 pdf 有时会包含多个电子签名,例如作为每页上的首字母缩写。然后是一个单一的数字签名来覆盖整个文档。

于 2012-11-13T06:41:21.137 回答