0

我的公司需要实施一种在官方 PDF 上加盖电子印章的方法,以确保其完整性。听我的一些同事说是用OpenPDF做的,但是在网上搜索到现在还没有找到。

仅使用 OpenPDF 就可以有效地实现这一目标吗?或者是否存在其他库?在这种情况下,我更喜欢免费库,但如果只有商业选项,我想先尝试一下,这样我就可以看看我是否能够使用它们,以及我的上级是否愿意承担经济风险。

这是维基百科对电子印章的定义:

合格的电子印章是符合欧盟第 910/2014 号条例(eIDAS 条例)的电子印章,适用于欧洲内部市场的电子交易。它可以在很长一段时间内验证文件的发行者。合格的电子印章可以被认为是纸上法人印章的数字等效物。根据 eIDAS 规定,合格的电子印章必须由合格的电子设备创建,并以合格的电子印章证书为基础。

4

1 回答 1

0

印章和签名

首先,在对这个问题的评论中,有一些关于电子印章签名的讨论。

从法律上讲(在 eIDAS 的背景下),它们之间是完全不同的。但是,从技术上讲,两者通常都是作为数字签名实现的,在 PDF 的上下文中更准确地说是作为 PAdES 签名;主要区别在于使用的签名者证书表明您是否有电子印章或签名。

因此,问题归结为 OpenPDF 是否支持创建 PAdES 签名。

OpenPDF 和 PAdES

OpenPDF 是 iText 的最后一个非 AGPL 版本的一个分支,即在 2009-11-27 13:59:39 标记的非官方版本 iText 4.2.0 Bruno Lowagie。在那一年,ETSI 刚刚发布了 PAdES 签名的第一版作为技术规范 (TS),而不是欧洲标准 (EN)。

因此,当时的 iText 库不包含任何明确的 PAdES 支持,仅针对可互操作的 ISO 32000-1 签名类型。不过,它提供了一个选项,主要是自己创建签名字典并注入您自己的定制签名容器。因此,通过使用此选项,您可以创建 PAdES 签名,不仅可以使用 ISO 32000-1 兼容性配置文件,还可以使用 BES 和 EPES 配置文件。

从那时起,OpenPDF 签名 API 几乎没有改变;因此,仍然没有对 PAdES 的明确支持,但接口是开放的,可以注入签名字典和签名容器,以创建匹配简单 PAdES 配置文件(Baseline-B、Baseline-T、E-BES、E-EPES)的签名。

因此,关于您的问题

仅使用 OpenPDF 就可以有效地实现这一目标吗?

使用 OpenPDF 是可能的,但根据您想要的确切配置文件,您必须添加一些代码以相应地生成签名字典和签名容器。

或者是否存在其他库?

是的。例如

  • iText(很久以前从 OpenPDF 派生出来的)同时得到了进一步的开发,并包含一些更明确的 PAdES 支持。
  • 用于 PDF 签名的CEF eSignature 数字签名服务套件使用 PDFBox 或 OpenPDF 作为基础 PDF 库,但构建了自己的签名字典和签名容器。
  • ...

(不过,对于库推荐,请使用Software Recommendations Stack Exchange而不是堆栈溢出,严格来说它们在这里是题外话。)

于 2019-12-10T10:23:03.007 回答