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!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

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

Processing
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
23,701 views