Skip to Main Content

Java Security

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

help with java.security.NoSuchAlgorithmException

843811Jun 1 2009 — edited Jun 2 2009
Hello:

OK, I implemented my client-server project using SSLSocket /SSLServerSocket.

In my server I have this code: (main class is saiSrv)
        
SSLServerSocketFactory sslssf =
     (SSLServerSocketFactory) SSLServerSocketFactory.getDefault();
SSLServerSocket Socket=
    (SSLServerSocket)sslssf.createServerSocket(4444);
I have my classes in a signed jar file. I used these tools:


jar cf Tmp.jar *.class*
keytool -genkey -keystore MyKeyStore -alias KeyID1 -storepass pwdstr -keypass pwdkey
jarsigner -keystore MyKeyStore -signedjar Server.jar Temp.jar KeyID1 -storepass pwdstr -keypass pwdkey


If I had not signed the jar file, I would get a javax.net.ssl.SSLException

OK, now I run my server:

java -Djavax.net.ssl.keyStore=MyKeyStore -Djavax.net.ssl.keyStorePassword=pwdkey -cp Server.jar saiSrv


But I get another exception:

java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl)

This is the full exception trace:
*
java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl)
at javax.net.ssl.DefaultSSLServerSocketFactory.throwException(Unknown Source)
at javax.net.ssl.DefaultSSLServerSocketFactory.createServerSocket(Unknown Source)
at saiShared.GetServerSocket(saiShared.java:163)
at saiSrv.<init>(saiSrv.java:934)
at saiSrv.main(saiSrv.java:993)
Caused by: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl)
at java.security.Provider$Service.newInstance(Unknown Source)
at sun.security.jca.GetInstance.getInstance(Unknown Source)
at sun.security.jca.GetInstance.getInstance(Unknown Source)
at javax.net.ssl.SSLContext.getInstance(Unknown Source)
at javax.net.ssl.SSLContext.getDefault(Unknown Source)
at javax.net.ssl.SSLServerSocketFactory.getDefault(Unknown Source)
at saiShared.GetServerSocket(saiShared.java:162)
... 2 more
Caused by: java.security.UnrecoverableKeyException: Cannot recover key
at sun.security.provider.KeyProtector.recover(Unknown Source)
at sun.security.provider.JavaKeyStore.engineGetKey(Unknown Source)
at sun.security.provider.JavaKeyStore$JKS.engineGetKey(Unknown Source)
at java.security.KeyStore.getKey(Unknown Source)
at com.sun.net.ssl.internal.ssl.SunX509KeyManagerImpl.<init>(Unknown Source)
at com.sun.net.ssl.internal.ssl.KeyManagerFactoryImpl$SunX509.engineInit(Unknown Source)
at javax.net.ssl.KeyManagerFactory.init(Unknown Source)
at com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl.getDefaultKeyManager(Unknown Source)
at com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl.<init>(Unknown Source)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
... 9 more
*


This happens exactly when I call createServerSocket

Could you see what is wrong?

Thanks!
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jun 30 2009
Added on Jun 1 2009
5 comments
24,445 views