Package javax.net.ssl

Class SSLContext


  • public class SSLContext
    extends Object
    Instances of this class represent a secure socket protocol implementation which acts as a factory for secure socket factories or SSLEngines. This class is initialized with an optional set of key and trust managers and source of secure random bytes.

    Every implementation of the Java platform is required to support the following standard SSLContext protocol:

    • TLSv1
    This protocol is described in the SSLContext section of the Java Cryptography Architecture Standard Algorithm Name Documentation. Consult the release documentation for your implementation to see if any other algorithms are supported.
    Since:
    1.4
    • Method Detail

      • getInstance

        public static SSLContext getInstance​(String protocol)
                                      throws NoSuchAlgorithmException
        Returns a SSLContext object that implements the specified secure socket protocol.

        This method traverses the list of registered security Providers, starting with the most preferred Provider. A new SSLContext object encapsulating the SSLContextSpi implementation from the first Provider that supports the specified protocol is returned.

        Parameters:
        protocol - the standard name of the requested protocol. See the SSLContext section in the Java Cryptography Architecture Standard Algorithm Name Documentation for information about standard protocol names.
        Returns:
        the new SSLContext object.
        Throws:
        NoSuchAlgorithmException - if no Provider supports a SSLContextSpi implementation for the specified protocol.
        NullPointerException - if protocol is null.
      • getProtocol

        public final String getProtocol()
        Returns the protocol name of this SSLContext object.

        This is the same name that was specified in one of the getInstance calls that created this SSLContext object.

        Returns:
        the protocol name of this SSLContext object.
      • init

        public final void init​(@Nullable
                               KeyManager[] km,
                               @Nullable
                               TrustManager[] tm,
                               @Nullable
                               SecureRandom random)
                        throws KeyManagementException
        Initializes this context. Either of the first two parameters may be null in which case the installed security providers will be searched for the highest priority implementation of the appropriate factory. Likewise, the secure random parameter may be null in which case the default implementation will be used.

        Only the first instance of a particular key and/or trust manager implementation type in the array is used. (For example, only the first javax.net.ssl.X509KeyManager in the array will be used.)

        Parameters:
        km - the sources of authentication keys or null
        tm - the sources of peer authentication trust decisions or null
        random - the source of randomness for this generator or null
        Throws:
        KeyManagementException - if this operation fails
      • getSocketFactory

        public final SSLSocketFactory getSocketFactory()
        Returns a SocketFactory object for this context.
        Returns:
        the SocketFactory object
        Throws:
        IllegalStateException - if the SSLContextImpl requires initialization and the init() has not been called
      • getServerSocketFactory

        public final SSLServerSocketFactory getServerSocketFactory()
        Returns a ServerSocketFactory object for this context.
        Returns:
        the ServerSocketFactory object
        Throws:
        IllegalStateException - if the SSLContextImpl requires initialization and the init() has not been called