我下载了bc * .jar文件(bcprov,bcpkix,bcmail,bcpg)并将它们放入我的项目中。但Eclipse无法解析org.bouncycastle.asn1。*。文档显然列出了asn1相关的功能。
我的代码:
X500Principal subject = new X500Principal("C=NO");
ContentSigner signGen = new JcaContentSignerBuilder("SHA1withRSA").build(pk);
PKCS10CertificationRequestBuilder builder = new JcaPKCS10CertificationRequestBuilder(subject, pub);
PKCS10CertificationRequest csr = builder.build(signGen);
Error: The type org.bouncycastle.asn1.x500.X500Name cannot be resolved. It is indirectly referenced from required .class files
这是生成csr的正确方法吗?
欣赏!
答案 0 :(得分:0)
抛出异常是因为您的某些类依赖于org.bouncycastle.asn1.x500.X500Name
,并且此类不在类路径中。在您的情况下,例如PKCS10CertificationRequestBuilder
使用内部org.bouncycastle.asn1.x500.X500Name
,所以可能存在问题。
问题是PKCS10CertificationRequestBuilder
位于bcpkix.jar
且org.bouncycastle.asn1.x500.X500Name
位于bcprov.jar
,因此只需将bcprov.jar
添加到类路径中即可。
无论如何,如果您想使用java生成证书签名请求,可以直接使用keytool
这是一个随JVM一起分发的工具,并且它位于$JAVA_HOME/bin/keytool
上。互联网上有很多关于如何使用keytool生成csr的信息,你可以搜索,或者如果你想显示一个,你可以看看here
希望这有帮助,