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 版本编译的。
我在 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 版本编译的。