我有由esig / dss https://github.com/esig/dss库签名的PDF文档。我可以在Acrobat Reader中看到这个单曲。当我想用iText和BouncyCastle验证它时,我得到了例外:
2.16.840.1.101.3.4.2.1withRSA Signature not available
我在Fedora上使用Oracle JDK 1.8.0_112,无限加密,iText-2.0.8.jar
和BouncyCastle bcprov-jdk16-139.jar
。
当我使用来自Complete list of MessageDigest available in the JDK
的响应来查看我的环境中可用的Message Digest时我得到了:
Alias: "OID.2.16.840.1.101.3.4.2.1" -> "SHA-256"
所以它可以在我的JDK中找到。
为什么2.16.840.1.101.3.4.2.1withRSA Signature not available
?
答案 0 :(得分:0)
您提到您使用“iText-2.0.8.jar”和“bcprov-jdk16-139.jar”。
这些版本很古老,特别是版本2.0.8已于2008年初发布.PAdES规范首次发布于2009年,他们在pdf签名中引入了许多变化和补充。 Esig / dss基本上是作为这些更改和添加的第一个实现而引入的。
因此,您绝对应该考虑更新以支持当前标准。