For Programmers: Free Programming Magazines  


Home > Archive > Java Security > September 2006 > SSL Socket handshake problem









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Author SSL Socket handshake problem
aklikic@gmail.com

2006-09-22, 4:22 am

Hi.
I'm new with SSL socket so I need some assistance or advice.
I'm testing jsee example SSLSocketClientWithClientAuth.java with my own
provider witch is creating JKS.
My code looks like this:
########################################
#################################
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
ks.load(null, SSLKEY_PASSWORD);
KeyPair keyPair = getKeys();//this method returns KeyPair using my
provider (from HSM);
ks.setCertificateEntry("MYROOT_ALIAS", certRoot);//certRoot is ca
certificate
ks.setKeyEntry(alias, keyPair.getPrivate(),
SSLKEY_PASSWORD,certSSLchain);
//certSSLchain is X509 array: ca cert and key pair cert
Certificate[] certs = ks.getCertificateChain(alias);

//key manager
KeyManagerFactory kmf =
KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
kmf.init(ks, SSLKEY_PASSWORD);

//trust manager
TrustManagerFactory tmf =
TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
tmf.init(ks);

SSLContext ctx = SSLContext.getInstance("TLS");
ctx.init(kmf.getKeyManagers(),tmf.getTrustManagers(), null);
SSLSocketFactory sf = ctx.getSocketFactory();

SSLSocket socket = (SSLSocket) sf.createSocket(destipaddress, 443);

socket.startHandshake(); --> here error is thrown
########################################
#################################
Error is:
java.lang.NoClassDefFoundError
at javax.crypto.Cipher.getInstance(DashoA12275)
at com.sun.net.ssl.internal.ssl.JsseJce.getCipher(JsseJce.java:90)
at com.sun.net.ssl.internal.ssl.RSACipher.<init>(RSACipher.java:35)
at
com.sun.net.ssl.internal.ssl.RSACipher.getInstance(RSACipher.java:69)
at
com.sun.net.ssl.internal.ssl.PreMasterSecret.<init>(PreMasterSecret.java:82)
at
com.sun.net.ssl.internal.ssl.ClientHandshaker.serverHelloDone(ClientHandshaker.java:514)
at
com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:160)
at
com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:495)
at
com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:433)
at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:815)
at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1025)
at
com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1038)
at hr.logos.acs.mon.ah.ssl.HTTPSSender.send(HTTPSSender.java:204)
at hr.logos.acs.mon.ah.ssl.HTTPSSender.main(HTTPSSender.java:365)

This is my security provider list:
[1] - MyProvider
[2] - SunJCE
[3] - SunRsaSign
[4] - SunJSSE
[5] - SUN
[6] - SunJGSS
[7] - SunSASL

Environment: java 1.5 on Windows XP.
My provider is nCypher provider. I'm using nCypher HSM for storing
keys.
Can anyone give me a hint? Can anyone gas what is the problem?
Has any one encountered similar problem?
Thanks for your help.
Alan

Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com