javax.net.ssl

Class 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

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, String provider)
Get an instance of a context for the specified protocol from the named provider.
static SSLContext
getInstance(String protocol, Provider provider)
Get an instance of a context for the specified protocol from the specified 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, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Details

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 Details

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.

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.

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.

SSLContext.java -- an SSL protocol context. Copyright (C) 2004 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.