Sun Java KeyManagerFactory and null passwords

喜夏-厌秋 提交于 2019-12-04 11:39:13

问题


We are having a problem with the KeyManagerFactory in the Sun JRE 1.6. We are using code similar to the following to upload and use a certificate in p12 format:

KeyStore keyStore = KeyStore.getInstance(PKCS12);
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(SUN_X509);

InputStream certificateFile = getSSLCertificate();
String certificatePassword = getSSLCertificatePassword();
keyStore.load(certificateFile, certificatePassword);
keyManagerFactory.init(keyStore, certificatePassword);

This code works correctly when the certificate password exists. But when the certificate password is null (so the certificate is not protected by a password) we get a divide by zero error from the keyManagerFactory.init line.

Does anyone know why this is happening? Is it not possible to use a certificate without a password? Thanks


回答1:


Because PKCS12 contains private key, you should always have a password. I think Sun accidentally enforces this :)

For all Keystore API, password is required for the store and private keys. If you don't really want deal with the configuration or user-interaction, just use the default password "changeit" everywhere.




回答2:


This is a bug:

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6415637

Workaround is to set a password.



来源:https://stackoverflow.com/questions/1814048/sun-java-keymanagerfactory-and-null-passwords

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!