This package provides all the classes and interfaces needed to implemenet and program the Secure Socket abstraction based on the SSL protocol SSSLv3.0 or TLSv1.2. All the details of the SSL handshake protocol are accounted for, and a client or a server can specify the cipher set to use. X.509 certificates are verified, and, if desired, the client and the server each have the option of verifying the entire certificate chain until the root Certificate Authority is reached. Notice that the Android javax.net.ssl package uses the OpenSSL Library to implement the low level SSL functionality. All the relevant OpenSSl write(...) and read(...) functions are hidden within two JNI files. The signatures of all the Java SSL methods are compliant with the Java 5.0 specification. The provider for all SSL cryptological tools is The Legion of Bouncy Castle (http://www.bouncycastle.org).