Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[Click the star to watch this topic] SSL Socket handshake problem

9 views
Skip to first unread message

alan_sec

unread,
Sep 22, 2006, 11:17:41 AM9/22/06
to
Hi.
I posted this problem on comp.lang.java.security to.
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

0 new messages