javax.net.ssl
Class SSLContext

java.lang.Object
  extended by javax.net.ssl.SSLContext

public class SSLContext
extends Object

A "meta-factory" for protocol-specific socket and server socket factories. This class serves as a clearinghouse for socket factories and cached session contexts for a particular protocol, such as SSLv3.


Constructor Summary
protected SSLContext(SSLContextSpi ctxSpi, Provider provider, String protocol)
          Create a new SSL context.
 
Method Summary
 SSLEngine createSSLEngine()
          Creates a new SSLEngine for this context.
 SSLEngine createSSLEngine(String host, int port)
          Creates a new SSLEngine for this context, with a given host name and port number.
 SSLSessionContext getClientSessionContext()
          Returns the set of SSL contexts available for client connections.
static SSLContext getInstance(String protocol)
          Get an instance of a context for the specified protocol from the first provider that implements it.
static SSLContext getInstance(String protocol, Provider provider)
          Get an instance of a context for the specified protocol from the specified provider.
static SSLContext getInstance(String protocol, String provider)
          Get an instance of a context for the specified protocol from the named provider.
 String getProtocol()
          Returns the protocol name of this context.
 Provider getProvider()
          Returns the provider of this implementation.
 SSLSessionContext getServerSessionContext()
          Returns the set of SSL contexts available for server connections.
 SSLServerSocketFactory getServerSocketFactory()
          Returns the factory for server SSL sockets.
 SSLSocketFactory getSocketFactory()
          Returns the factory for client SSL sockets.
 void init(KeyManager[] keyManagers, TrustManager[] trustManagers, SecureRandom random)
          Initializes this context and prepares it for producing socket factories.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SSLContext

protected SSLContext(SSLContextSpi ctxSpi,
                     Provider provider,
                     String protocol)
Create a new SSL context.

Parameters:
ctxSpi - The context engine.
provider - The provider of the implementation.
protocol - The name of the SSL protocol.
Method Detail

getInstance

public static final SSLContext getInstance(String protocol)
                                    throws NoSuchAlgorithmException
Get an instance of a context for the specified protocol from the first provider that implements it.

Parameters:
protocol - The name of the protocol to get a context for.
Returns:
The new context.
Throws:
NoSuchAlgorithmException - If no provider implements the given protocol.
IllegalArgumentException - if protocol is null or is an empty string.

getInstance

public static final SSLContext getInstance(String protocol,
                                           String provider)
                                    throws NoSuchAlgorithmException,
                                           NoSuchProviderException
Get an instance of a context for the specified protocol from the named provider.

Parameters:
protocol - The name of the protocol to get a context for.
provider - The name of the provider to get the implementation from.
Returns:
The new context.
Throws:
NoSuchAlgorithmException - If the provider does not implement the given protocol.
NoSuchProviderException - If the named provider does not exist.
IllegalArgumentException - if either protocol or provider is null, or if protocol is an empty string.

getInstance

public static final SSLContext getInstance(String protocol,
                                           Provider provider)
                                    throws NoSuchAlgorithmException
Get an instance of a context for the specified protocol from the specified provider.

Parameters:
protocol - The name of the protocol to get a context for.
provider - The name of the provider to get the implementation from.
Returns:
The new context.
Throws:
NoSuchAlgorithmException - If the provider does not implement the given protocol.
IllegalArgumentException - if either protocol or provider is null, or if protocol is an empty string.

createSSLEngine

public final SSLEngine createSSLEngine()
Creates a new SSLEngine for this context.

Returns:
The new SSLEngine.
Since:
1.5

createSSLEngine

public final SSLEngine createSSLEngine(String host,
                                       int port)
Creates a new SSLEngine for this context, with a given host name and port number.

Parameters:
host - The local host name.
port - The local port number.
Returns:
The new SSLEngine.
Since:
1.5

getClientSessionContext

public final SSLSessionContext getClientSessionContext()
Returns the set of SSL contexts available for client connections.

Returns:
The set of SSL contexts available for client connections.

getProtocol

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

Returns:
The protocol name of this context.

getProvider

public final Provider getProvider()
Returns the provider of this implementation.

Returns:
The provider of this implementation.

getServerSessionContext

public final SSLSessionContext getServerSessionContext()
Returns the set of SSL contexts available for server connections.

Returns:
The set of SSL contexts available for server connections.

getServerSocketFactory

public final SSLServerSocketFactory getServerSocketFactory()
Returns the factory for server SSL sockets.

Returns:
The factory for server SSL sockets.

getSocketFactory

public final SSLSocketFactory getSocketFactory()
Returns the factory for client SSL sockets.

Returns:
The factory for client SSL sockets.

init

public final void init(KeyManager[] keyManagers,
                       TrustManager[] trustManagers,
                       SecureRandom random)
                throws KeyManagementException
Initializes this context and prepares it for producing socket factories. All of the parameters are optional; default values are used if left unspecified.

Parameters:
keyManagers - The set of key managers to use.
trustManagers - The set of trust managers to use.
random - A source of random bits to use.
Throws:
KeyManagementException - If initialization fails.