Java 如何使用XML签名对pdf进行签名

Java 如何使用XML签名对pdf进行签名,java,timestamp,itext,bouncycastle,xml-signature,Java,Timestamp,Itext,Bouncycastle,Xml Signature,我正在使用iText和BouncyCastle开发一个用于数字签名和时间戳PDF的Java应用程序 问题是我们必须使用从web服务接收的XML签名创建时间戳 有人知道这是否可行吗 亲切问候。简而言之: 集成PDF时间戳需要RFC3161时间戳(如果需要时间戳) 详细内容: 如果是根据(仍然是当前的PDF标准)的时间戳签名,签名容器可以包含: 作为无符号属性的时间戳信息(PDF 1.6):时间戳令牌应符合RFC 3161,并应按照RFC 3161附录A中的说明计算并嵌入PKCS#7对象中。时间戳及

我正在使用iText和BouncyCastle开发一个用于数字签名和时间戳PDF的Java应用程序

问题是我们必须使用从web服务接收的XML签名创建时间戳

有人知道这是否可行吗

亲切问候。

简而言之:

集成PDF时间戳需要RFC3161时间戳(如果需要时间戳)

详细内容:

如果是根据(仍然是当前的PDF标准)的时间戳签名,签名容器可以包含:

作为无符号属性的时间戳信息(PDF 1.6):时间戳令牌应符合RFC 3161,并应按照RFC 3161附录A中的说明计算并嵌入PKCS#7对象中。时间戳及其处理的具体处理留给特定的签名处理程序来定义

(第12.8.3.3.1节)

如果文件时间戳根据PAdES LTV配置文件扩展标准,则文件时间戳值

应为RFC 3161[6]中规定的时间标记

(附件A.2)

因此,为了能够创建可互操作的PDF时间戳,您的服务必须提供RFC361时间戳

允许使用XML时间戳,但只能使用它们

  • 用于PDF容器中嵌入的签名XML文档的XAdES签名(第4节)和
  • 对于XFA表单上的XAdES签名(第5节)

这两种图章都不是PDF格式。

好吧,你可以从阅读我的书开始,然后继续阅读ISO-32000-1或PAdES标准。您会注意到,您正在混合标准中未提供的内容,这使得您的需求有点不可能,就像您试图将一个方形的销钉打入一个圆形的孔一样。XML签名仅在PAdES-5中受支持。Adobe Acrobat/Reader还不支持这些签名,而且您的pdf可能不适合PAdES-5,因此请放弃XML签名,重新考虑您的要求。大家好,非常感谢Bruno Lowagie,@mkl帮助我更好地理解pdf签名的不同概念。现在我对所有内容都理解得更好了。亲切的问候。