bouncycastle 和 iText 版本

bouncycastle and iText versions

我在 digital-signatures-chapter 之后使用 iText 5.5.11。 我已经创建了我的 KeyStore - ks.jks 文件并将 bouncycastle jar 添加到我的 classpath.

使用我得到的 bouncycastle 14-157(最新)版本 -

java.lang.ClassNotFoundException: org.bouncycastle.tsp.TimeStampTokenInfo

TimeStampTokenInfo-class-not-found 之后,我尝试使用 bouncycastle 14-145,但出现此错误:

java.lang.ClassNotFoundException: org.bouncycastle.jcajce.provider.digest.MD2$Digest

有人知道我还能尝试什么吗?

完整的错误日志:

Exception in thread "main" java.lang.NoClassDefFoundError: org/bouncycastle/jcajce/provider/digest/MD2$Digest
    at com.mataf.GenSig.PfxDS.sign(PfxDS.java:51)
    at com.mataf.GenSig.PfxDS.main(PfxDS.java:71)
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.jcajce.provider.digest.MD2$Digest
    at java.net.URLClassLoader.run(URLClassLoader.java:366)
    at java.net.URLClassLoader.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 2 more

谢谢。

看看 iText 5.5.11 Maven pom.xml 就会发现:

  <dependencies>
    <dependency>
      <groupId>org.bouncycastle</groupId>
      <artifactId>bcprov-jdk15on</artifactId>
      <version>1.49</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.bouncycastle</groupId>
      <artifactId>bcpkix-jdk15on</artifactId>
      <version>1.49</version>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.8.2</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.santuario</groupId>
      <artifactId>xmlsec</artifactId>
      <version>1.5.1</version>
      <optional>true</optional>
    </dependency>
  </dependencies>

因此,iText 是使用 BouncyCastle 版本 1.49 的 Java 版本 5-8 版本编译的。