2013-03-21 268 views
0

我想用加载方法加载KeyStore,但是当我使用它时出现错误。我不明白ECParameter是什么。加载密钥库(PKCS12)时出错

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 

Regars

Wazol

回答

1

你会发现很多的信息,EC(椭圆曲线)参数,如果你做一个搜索。特别是,JDK Code which throws that exception

如果您在相关的方法看,你会看到一个注释部分,其指示异常后:

It is left as a starting point for a complete parsing implementation

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

使用Bouncy Castle可能会有更好的运气,它通常具有比基本JDK更多的功能。

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

+0

最终目标是从.p12文件和.cvert文件创建一个KeyStore。通过这个Keystore,我将访问护照的DG3。有了Bouncy城​​堡,我真的不知道如何创建我的keyStore:并且我不知道keystore是如何生成的,但我会询问一些关于它的信息 – user2194639 2013-03-21 11:43:32