SSL (Secure Sockets Layer) is at the heart of most online security. Sun
Microsystems provides SSL as part of their JSSE (Java Secure Sockets
Extension) reference implementation, which is now part of the standard
JDK releases. However, Sun's reference implementation can be replaced by
alternate implementations.
If you're writing a commercial product and you need security backed by a
recognized name, then you're looking for a commercial implementation. If
you don't want to spend money licensing a commercial product, then Sun's
reference implementation is available. It is solid and continually being
improved, as is the version of JSSE included with IBM's JDK offering.
However, if you are interested in learning about how SSL works at the
source code level or you want an implementation that lets you play with
the code, then you are out of luck.
Currently, I am aware of only one free implementation of SSL for Java
currently still being developed: Claymore Systems' PureTLS. PureTLS
supports both SSLv3 and TLSv1 and provides the source code under a
Berkeley style license. As a bonus, you can use the optional GNP
(GoNative Provider) library that replaces commonly used crypto
operations in Java with native implementations for a significant
performance improvement.
For more information, check out: http://www.rtfm.com/puretls/