Please note that the contents of this offline web site may be out of date. To access the most recent documentation visit the online version .
Note that links that point to online resources are green in color and will open in a new window.
We would love it if you could give us feedback about this material by filling this form (You have to be online to fill it)
Android APIs
public class

SSLContext

extends Object
java.lang.Object
   ↳ javax.net.ssl.SSLContext

Class Overview

The public API for secure socket protocol implementations. It acts as factory for SSLSocketFactory 's and SSLEngine s.

Summary

Protected Constructors
SSLContext ( SSLContextSpi contextSpi, Provider provider, String protocol)
Creates a new SSLContext .
Public Methods
final SSLEngine createSSLEngine ( String peerHost, int peerPort)
Creates an SSLEngine instance from this context with the specified hostname and port.
final SSLEngine createSSLEngine ()
Creates an SSLEngine instance from this context.
final SSLSessionContext getClientSessionContext ()
Returns the SSL session context that encapsulates the set of SSL sessions that can be used for handshake of client-side SSL sockets.
static SSLContext getDefault ()
Returns the default SSLContext.
final SSLParameters getDefaultSSLParameters ()
Returns the default SSL handshake parameters for SSLSockets created by this SSLContext.
static SSLContext getInstance ( String protocol, String provider)
Creates a new SSLContext instance for the specified protocol from the specified provider.
static SSLContext getInstance ( String protocol, Provider provider)
Creates a new SSLContext instance for the specified protocol from the specified provider.
static SSLContext getInstance ( String protocol)
Creates a new SSLContext instance for the specified protocol.
final String getProtocol ()
Returns the name of the secure socket protocol of this instance.
final Provider getProvider ()
Returns the provider of this SSLContext instance.
final SSLSessionContext getServerSessionContext ()
Returns the SSL session context that encapsulates the set of SSL sessions that can be used for handshake of server-side SSL sockets.
final SSLServerSocketFactory getServerSocketFactory ()
Returns a server socket factory for this instance.
final SSLSocketFactory getSocketFactory ()
Returns a socket factory for this instance.
final SSLParameters getSupportedSSLParameters ()
Returns SSL handshake parameters for SSLSockets that includes all supported cipher suites and protocols.
final void init ( KeyManager[] km, TrustManager[] tm, SecureRandom sr)
Initializes this SSLContext instance.
static void setDefault ( SSLContext sslContext)
Sets the default SSLContext instance as returned by getDefault() to a non-null initialized value.
[Expand]
Inherited Methods
From class java.lang.Object

Protected Constructors

protected SSLContext ( SSLContextSpi contextSpi, Provider provider, String protocol)

Added in API level 1

Creates a new SSLContext .

Parameters
contextSpi the implementation delegate.
provider the provider.
protocol the protocol name.

Public Methods

public final SSLEngine createSSLEngine ( String peerHost, int peerPort)

Added in API level 1

Creates an SSLEngine instance from this context with the specified hostname and port.

Parameters
peerHost the name of the host
peerPort the port
Returns
  • an SSLEngine instance from this context.
Throws
UnsupportedOperationException if the provider does not support the operation.

public final SSLEngine createSSLEngine ()

Added in API level 1

Creates an SSLEngine instance from this context.

Returns
  • an SSLEngine instance from this context.
Throws
UnsupportedOperationException if the provider does not support the operation.

public final SSLSessionContext getClientSessionContext ()

Added in API level 1

Returns the SSL session context that encapsulates the set of SSL sessions that can be used for handshake of client-side SSL sockets.

Returns
  • the SSL client session context for this context or null if the underlying provider does not provide an implementation of the SSLSessionContext interface.

public static SSLContext getDefault ()

Added in API level 9

Returns the default SSLContext. The default SSL context can be set with setDefault(SSLContext) . If not, one will be created with SSLContext.getInstance("Default") , which will already be initialized.

Throws
NoSuchAlgorithmException if there is a problem creating the default instance.

public final SSLParameters getDefaultSSLParameters ()

Added in API level 9

Returns the default SSL handshake parameters for SSLSockets created by this SSLContext.

Throws
UnsupportedOperationException

public static SSLContext getInstance ( String protocol, String provider)

Added in API level 1

Creates a new SSLContext instance for the specified protocol from the specified provider.

The following combinations are supported:

Protocol Provider API Levels
Default AndroidOpenSSL 9+
SSL AndroidOpenSSL 9+
SSL HarmonyJSSE 9-19
SSLv3 AndroidOpenSSL 9+
SSLv3 HarmonyJSSE 9-19
TLS AndroidOpenSSL 9+
TLS HarmonyJSSE 1-19
TLSv1 AndroidOpenSSL 9+
TLSv1 HarmonyJSSE 1-19
TLSv1.1 AndroidOpenSSL 16+
TLSv1.2 AndroidOpenSSL 16+

NOTE: The best practice is to rely on platform defaults rather than explicitly specify a provider. getDefault() and getInstance(String) are normally preferred over this method.

Parameters
protocol the requested protocol to create a context for.
provider the name of the provider that provides the requested protocol.
Returns
  • an SSLContext for the requested protocol.
Throws
NoSuchAlgorithmException if the specified provider cannot provider the requested protocol.
NoSuchProviderException if the specified provider does not exits.
NullPointerException if protocol is null (instead of NoSuchAlgorithmException as in 1.4 release)

public static SSLContext getInstance ( String protocol, Provider provider)

Added in API level 1

Creates a new SSLContext instance for the specified protocol from the specified provider.

Parameters
protocol the requested protocol to create a context for
provider the provider that provides the requested protocol.
Returns
  • an SSLContext for the requested protocol.
Throws
NoSuchAlgorithmException if the specified provider cannot provide the requested protocol.
NullPointerException if protocol is null (instead of NoSuchAlgorithmException as in 1.4 release)

public static SSLContext getInstance ( String protocol)

Added in API level 1

Creates a new SSLContext instance for the specified protocol.

The following protocols are supported:

Protocol API Levels
Default 9+
SSL 9+
SSLv3 9+
TLS 1+
TLSv1 1+
TLSv1.1 16+
TLSv1.2 16+

Parameters
protocol the requested protocol to create a context for.
Returns
  • the created SSLContext instance.
Throws
NoSuchAlgorithmException if no installed provider can provide the requested protocol
NullPointerException if protocol is null (instead of NoSuchAlgorithmException as in 1.4 release)

public final String getProtocol ()

Added in API level 1

Returns the name of the secure socket protocol of this instance.

Returns
  • the name of the secure socket protocol of this instance.

public final Provider getProvider ()

Added in API level 1

Returns the provider of this SSLContext instance.

Returns
  • the provider of this SSLContext instance.

public final SSLSessionContext getServerSessionContext ()

Added in API level 1

Returns the SSL session context that encapsulates the set of SSL sessions that can be used for handshake of server-side SSL sockets.

Returns
  • the SSL server session context for this context or null if the underlying provider does not provide an implementation of the SSLSessionContext interface.

public final SSLServerSocketFactory getServerSocketFactory ()

Added in API level 1

Returns a server socket factory for this instance.

Returns
  • a server socket factory for this instance.

public final SSLSocketFactory getSocketFactory ()

Added in API level 1

Returns a socket factory for this instance.

Returns
  • a socket factory for this instance.

public final SSLParameters getSupportedSSLParameters ()

Added in API level 9

Returns SSL handshake parameters for SSLSockets that includes all supported cipher suites and protocols.

Throws
UnsupportedOperationException

public final void init ( KeyManager[] km, TrustManager[] tm, SecureRandom sr)

Added in API level 1

Initializes this SSLContext instance. All of the arguments are optional, and the security providers will be searched for the required implementations of the needed algorithms.

Parameters
km the key sources or null .
tm the trust decision sources or null .
sr the randomness source or null.
Throws
KeyManagementException if initializing this instance fails.

public static void setDefault ( SSLContext sslContext)

Added in API level 9

Sets the default SSLContext instance as returned by getDefault() to a non-null initialized value.

Throws
NullPointerException on a null argument