我的应用中有一个PDF查看器。我只是将PDF文件加载到UIWebView中。但是当PDF包含数字签名时,它不会显示在WebView中。显示PDF的所有其他内容。只有签名区域留空。我在预览中检查了OSX中的Safari,结果是一样的。
然后我下载了适用于Mac的Adobe Reader应用程序,并尝试打开PDF。它正确显示了签名!!
有人可以告诉我目标C中是否有任何机制来显示PDF文件的签名。
答案 0 :(得分:1)
Adobe介绍了如何在PDF文件中使用数字签名。请参阅Adobe PDF 1.7 spec。第466页第12.8节。
然而,正如您所发现的,许多pdf文件的观看者(包括Google Chrome内置的pdf查看器)都忽略了数字签名。这很不幸,因为数字签名变得更受欢迎。
如果您还没有这样做,请提交针对UIWebView的错误报告。或者功能增强请求。添加完整的数字签名支持是非常重要的,但它是一个很棒的功能。
添加数字签名支持
作为支持的第一步,您可以考虑仅显示有关文档数字签名的信息并进行验证。 - 重要的不仅仅是显示数字签名,还需要verify。
验证最重要的部分是imho,用于验证文档自签署后是否未更改。验证您是否信任签名者证书的根证书是好事,但实际上并不像文档完整性那么重要。另一方面,这一切都取决于您的应用程序及其环境。
作为第二步,您可以在文档页面的正确位置显示数字签名通常包含的图形签名。
pdf通常包含多个数字签名。 pdf包括多个“电子签名”以及验证数字签名也是常见的。
“电子签名”仅仅是pdf页面上显示的图形签名。它不涉及任何加密功能,不保证文档完整性,也不涉及签名者不可否认(不涉及签名者证书)。
由于数字签名需要实时验证,因此pdfs有时会包含多个电子签名,例如每页上的首字母缩写。然后是一个数字签名来覆盖整个文档。