SSLContextSpi

public abstract class SSLContextSpi extends Object

This class defines the Service Provider Interface (SPI) for the SSLContext class.

All the abstract methods in this class must be implemented by each cryptographic service provider who wishes to supply the implementation of a particular SSL context.

See Also

Public Constructor Summary

Protected Method Summary

abstract SSLEngine
engineCreateSSLEngine()
Creates a new SSLEngine using this context.
abstract SSLEngine
engineCreateSSLEngine(String host, int port)
Creates a SSLEngine using this context.
abstract SSLSessionContext
engineGetClientSessionContext()
Returns a client SSLSessionContext object for this context.
SSLParameters
engineGetDefaultSSLParameters()
Returns a copy of the SSLParameters indicating the default settings for this SSL context.
abstract SSLSessionContext
engineGetServerSessionContext()
Returns a server SSLSessionContext object for this context.
abstract SSLServerSocketFactory
engineGetServerSocketFactory()
Returns a ServerSocketFactory object for this context.
abstract SSLSocketFactory
engineGetSocketFactory()
Returns a SocketFactory object for this context.
SSLParameters
engineGetSupportedSSLParameters()
Returns a copy of the SSLParameters indicating the maximum supported settings for this SSL context.
abstract void
engineInit(KeyManager[] km, TrustManager[] tm, SecureRandom sr)
Initializes this context.

Inherited Method Summary

Public Constructors

public SSLContextSpi ()

Protected Methods

protected abstract SSLEngine engineCreateSSLEngine ()

Creates a new SSLEngine using this context.

Applications using this factory method are providing no hints for an internal session reuse strategy. If hints are desired, engineCreateSSLEngine(String, int) should be used instead.

Some cipher suites (such as Kerberos) require remote hostname information, in which case this factory method should not be used.

Returns
  • the SSLEngine Object
Throws
IllegalStateException if the SSLContextImpl requires initialization and the engineInit() has not been called

protected abstract SSLEngine engineCreateSSLEngine (String host, int port)

Creates a SSLEngine using this context.

Applications using this factory method are providing hints for an internal session reuse strategy.

Some cipher suites (such as Kerberos) require remote hostname information, in which case peerHost needs to be specified.

Parameters
host the non-authoritative name of the host
port the non-authoritative port
Returns
  • the SSLEngine Object
Throws
IllegalStateException if the SSLContextImpl requires initialization and the engineInit() has not been called

protected abstract SSLSessionContext engineGetClientSessionContext ()

Returns a client SSLSessionContext object for this context.

Returns
  • the SSLSessionContext object

protected SSLParameters engineGetDefaultSSLParameters ()

Returns a copy of the SSLParameters indicating the default settings for this SSL context.

The parameters will always have the ciphersuite and protocols arrays set to non-null values.

The default implementation obtains the parameters from an SSLSocket created by calling the {@linkplain javax.net.SocketFactory#createSocket SocketFactory.createSocket()} method of this context's SocketFactory.

Returns
  • a copy of the SSLParameters object with the default settings
Throws
UnsupportedOperationException if the default SSL parameters could not be obtained.

protected abstract SSLSessionContext engineGetServerSessionContext ()

Returns a server SSLSessionContext object for this context.

Returns
  • the SSLSessionContext object

protected abstract SSLServerSocketFactory engineGetServerSocketFactory ()

Returns a ServerSocketFactory object for this context.

Returns
  • the ServerSocketFactory object
Throws
IllegalStateException if the SSLContextImpl requires initialization and the engineInit() has not been called

protected abstract SSLSocketFactory engineGetSocketFactory ()

Returns a SocketFactory object for this context.

Returns
  • the SocketFactory object
Throws
IllegalStateException if the SSLContextImpl requires initialization and the engineInit() has not been called

protected SSLParameters engineGetSupportedSSLParameters ()

Returns a copy of the SSLParameters indicating the maximum supported settings for this SSL context.

The parameters will always have the ciphersuite and protocols arrays set to non-null values.

The default implementation obtains the parameters from an SSLSocket created by calling the {@linkplain javax.net.SocketFactory#createSocket SocketFactory.createSocket()} method of this context's SocketFactory.

Returns
  • a copy of the SSLParameters object with the maximum supported settings
Throws
UnsupportedOperationException if the supported SSL parameters could not be obtained.

protected abstract void engineInit (KeyManager[] km, TrustManager[] tm, SecureRandom sr)

Initializes this context.

Parameters
km the sources of authentication keys
tm the sources of peer authentication trust decisions
sr the source of randomness
Throws
KeyManagementException if this operation fails