X500Principal subject = new X500Principal("CN=Test V3 Certificate");
PKCS10CertificationRequest kpGen = new PKCS10CertificationRequest("SHA1withRSA", subject, publicKey, null, privateKey);
java.lang.IllegalArgumentException: can't encode public key
at org.bouncycastle.jce.PKCS10CertificationRequest.<init>(Unknown Source)
at org.bouncycastle.jce.PKCS10CertificationRequest.<init>(Unknown Source)
at com.gemalto.nrs.test.KmsTest.generatePCK10(KmsTest.java:148)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:518)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1052)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:906)
java.lang.ClassCastException: org.bouncycastle.asn1.DERApplicationSpecific cannot be cast to org.bouncycastle.asn1.ASN1Sequence
at org.bouncycastle.jce.PKCS10CertificationRequest.<init>(Unknown Source)
at org.bouncycastle.jce.PKCS10CertificationRequest.<init>(Unknown Source)
at com.gemalto.nrs.test.KmsTest.generatePCK10(KmsTest.java:148)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:518)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:1052)
生成的公钥和私钥只是DER而不是ASN1
所以在使用它们之前,我必须得到它们的ASN1,这是这个问题的根本原因。
以下调用解决了该问题:
PublicKey publicKey = RSAtoX509Key.getPublicKey(PUBLIC_KEY.getBytes(), RSA_EXPONENT, "BC");
PrivateKey privateKey = RSAtoX509Key.getPrivateKey(PRIVATE_KEY.getBytes(), RSA_EXPONENT, "BC");
public static PublicKey getPublicKey(byte[] modulus, byte[] exponent, String provider) {
PublicKey publicKey = null;
try {
RSAPublicKeySpec pubKeySpec = new RSAPublicKeySpec(new BigInteger(1, modulus), new BigInteger(1, exponent));
KeyFactory keyFactory = null;
if(provider != null && !provider.isEmpty()) {
keyFactory = KeyFactory.getInstance("RSA", provider);
} else {
keyFactory = KeyFactory.getInstance("RSA");
}
publicKey = keyFactory.generatePublic(pubKeySpec);
} catch(Exception ex) {
logger.error(ex.getMessage());
return null;
}
return publicKey;
}
我有一个使用BouncyCastle作为安全提供者的应用程序,但是我想切换到另一个直接使用OpenSSL(consecrypt)的应用程序。我遇到的问题是,我正在使用BouncyCastle提供的密钥生成器中的ECDH“密钥”,但在我的其他库中没有类似的密钥生成器。 为了比较这两者,我将使用两种方法解码这些点,输入如下- 为提高可读性而添加换行符 使用BouncyCastle方法- 返回的是。返回
有人帮忙吗? 谢了。
我开始学密码学了。我需要用XML、RSA私钥(证书中不包括的是文件扩展名。key)和证书。cer扩展名生成一个PKCS#7文件。 为此,我使用了一个bouncycastle。 编辑:
问题内容: 我知道以前曾有人问过这个问题,但是我仍不确定我当前项目要使用哪种PDF生成框架。 我的要求 快速生成PDF文档(主要是订单,发票) 基于Java 易于布置 应该是开源的 易于更改布局 很多人似乎都在使用 iText ,但是除了关注点更改之外,我还有其他关注点:在HTML上下文中,有很好的MVC支持,我通常会坚持使用SpringMVC和FreeMarker来分离逻辑和布局。我有点担心,使
我试图用ECDSA和secp256r1曲线(P256)和SHA256算法来生成签名。我也在使用弹力城堡图书馆。下面的代码,
我有一个Web服务,它是一个数字签名(验证pdf,签名pdf)我正在使用库bcpkix-jdk15on-1.54.jar,bcprov-jdk15on-1.54.jar,itextpdf-5.4.0.jar.和作为Weblogic 12c12.2.1.2应用服务器当我在本地测试服务时,一切正常,但当在服务器上测试时,服务返回:java.lang.ClassNotFoundException:org
我正在构建一个github代码的静态库https://github.com/jasenhuang/aswbxml-c。我能够成功地构建库,但当我尝试添加项目时,却出现了一个错误。下面是错误日志。 我曾尝试为Xcode项目更改C++编译器类型,但没有成功。
libtool生成.a静态库 在OCStaticLib文件夹中准备OCTest.h和OCTest.m两个简单的类文件 . ├── OCTest.h └── OCTest.m 将OCTest.m编译成.o目标文件 终端进入到同级目录, 执行clang命令 clang -x objective-c \ -target x86_64-apple-macos11.1 \ -fobjc-arc