Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 加载密钥库(PKCS12)时出错_Java_Keystore - Fatal编程技术网

Java 加载密钥库(PKCS12)时出错

Java 加载密钥库(PKCS12)时出错,java,keystore,Java,Keystore,我想用load方法加载密钥库,但使用它时出错。我不明白ECParameter是什么 try { FileInputStream is =new FileInputStream(new File("D:\\UZ\\key_privateUZ.p12")); ks = KeyStore.getInstance("PKCS12"); password="1234".toCharArray(); ks.load(is, password); } catch (Exception e) { e.print

我想用load方法加载密钥库,但使用它时出错。我不明白ECParameter是什么

try {
FileInputStream is =new FileInputStream(new File("D:\\UZ\\key_privateUZ.p12"));
ks = KeyStore.getInstance("PKCS12");
password="1234".toCharArray();
ks.load(is, password);
} catch (Exception e) {
e.printStackTrace();
}
我的错误:

java.security.cert.CertificateParsingException: java.io.IOException: Only named ECParameters supported 
at sun.security.x509.X509CertInfo.<init>(X509CertInfo.java:171) 
at sun.security.x509.X509CertImpl.parse(X509CertImpl.java:1788) 
at sun.security.x509.X509CertImpl.<init>(X509CertImpl.java:202) 
at sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:97) 
at java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:339) 
at sun.security.pkcs12.PKCS12KeyStore.loadSafeContents(PKCS12KeyStore.java:1441) 
at sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1313) 
at java.security.KeyStore.load(KeyStore.java:1214) 
at Main.main(Main.java:21) Caused by: java.io.IOException: Only named ECParameters supported 
at sun.security.ec.ECParameters.decodeParameters(ECParameters.java:202) 
at sun.security.ec.ECParameters.engineInit(ECParameters.java:319) 
at java.security.AlgorithmParameters.init(AlgorithmParameters.java:293) 
at sun.security.x509.AlgorithmId.decodeParams(AlgorithmId.java:139) 
at sun.security.x509.AlgorithmId.<init>(AlgorithmId.java:114) 
at sun.security.x509.AlgorithmId.parse(AlgorithmId.java:381) 
at sun.security.x509.X509Key.parse(X509Key.java:168) 
at sun.security.x509.CertificateX509Key.<init>(CertificateX509Key.java:75) 
at sun.security.x509.X509CertInfo.parse(X509CertInfo.java:705) 
at sun.security.x509.X509CertInfo.<init>(X509CertInfo.java:169) 
... 8 more
java.security.cert.CertificateParsingException:java.io.IOException:仅支持命名的ECParameters
位于sun.security.x509.X509CertInfo。(X509CertInfo.java:171)
位于sun.security.x509.X509CertImpl.parse(X509CertImpl.java:1788)
位于sun.security.x509.X509CertImpl.(X509CertImpl.java:202)
位于sun.security.provider.X509Factory.engineGenerateCertificate(X509Factory.java:97)
位于java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:339)
位于sun.security.pkcs12.PKCS12KeyStore.loadSafeContents(PKCS12KeyStore.java:1441)
位于sun.security.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1313)
加载(KeyStore.java:1214)
在Main.Main(Main.java:21)处,由以下原因引起:java.io.IOException:仅支持命名的ECParameters
在sun.security.ec.ECParameters.decodeParameters(ECParameters.java:202)上
位于sun.security.ec.ECParameters.engineInit(ECParameters.java:319)
位于java.security.AlgorithmParameters.init(AlgorithmParameters.java:293)
位于sun.security.x509.AlgorithmId.decodeParams(AlgorithmId.java:139)
位于sun.security.x509.AlgorithmId.(AlgorithmId.java:114)
位于sun.security.x509.AlgorithmId.parse(AlgorithmId.java:381)
位于sun.security.x509.X509Key.parse(X509Key.java:168)
位于sun.security.x509.CertificateX509Key。(CertificateX509Key.java:75)
位于sun.security.x509.X509CertInfo.parse(X509CertInfo.java:705)
位于sun.security.x509.X509CertInfo。(X509CertInfo.java:169)
... 8个以上
富豪


Wazol

如果您进行搜索,您将找到大量关于EC(椭圆曲线)参数的信息。特别是

如果查看相关方法,将在异常后看到注释掉的部分,该部分指示:

它是完整解析实现的起点

换句话说,JDK不支持所有可能的编码

您可能会更幸运地使用它,它通常比基本的JDK有更多的特性


如果您解释密钥库中的数据是如何生成的,也可能会有所帮助。

如果您进行搜索,您将找到大量关于EC(椭圆曲线)参数的信息。特别是

如果查看相关方法,将在异常后看到注释掉的部分,该部分指示:

它是完整解析实现的起点

换句话说,JDK不支持所有可能的编码

您可能会更幸运地使用它,它通常比基本的JDK有更多的特性


如果您解释密钥库中的数据是如何生成的,也可能会有所帮助。

我这样解决了这个问题 在ECKey类中
ECParameterSpec papamSpec=ECNamedCurveTable.getParameterSpec(SECP)

我这样解决了这个问题 在ECKey类中
ECParameterSpec papamSpec=ECNamedCurveTable.getParameterSpec(SECP)

最终目标是从.p12文件和.cvert文件创建密钥库。使用此密钥库,我将访问passport的DG3。对于Bouncy castle,我不太了解如何创建我的密钥库:s,我也不知道密钥库是如何生成的,但我会询问一些关于它的信息it@shaun这并没有帮助提供答案,只是提供了更多的兔子踪迹。最终目标是从.p12文件和.cvert文件创建密钥库。使用此密钥库,我将访问passport的DG3。对于Bouncy castle,我不太了解如何创建我的密钥库:s,我也不知道密钥库是如何生成的,但我会询问一些关于它的信息it@shaun这无助于提供答案,更多的兔子踪迹。更多的解释为什么这会有助于OP理解你的建议是否有用。更多的解释为什么这会有助于OP理解你的建议是否有用