APIdia Launch Partner
Top Description Constructors Methods
javax.net.ssl

public abstract Class SSLContextSpi

extends Object
Class Inheritance
Known Direct Subclasses
sun.security.ssl.SSLContextImpl
Imports
java.security.*

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.

Since
1.4
See Also
SSLContext

Constructor Summary

AccessConstructor and Description
public
SSLContextSpi()

Constructor for subclasses to call.

Method Summary

Modifier and TypeMethod and Description
protected abstract SSLEngine

Returns:

the SSLEngine Object
engineCreateSSLEngine
()

Creates a new SSLEngine using this context.

protected abstract SSLEngine

Returns:

the SSLEngine Object
engineCreateSSLEngine
(String
the non-authoritative name of the host
host
,
int
the non-authoritative port
port
)

Creates a SSLEngine using this context.

protected abstract SSLSessionContext

Returns:

the SSLSessionContext object
engineGetClientSessionContext
()

Returns a client SSLSessionContext object for this context.

protected SSLParameters

Returns:

a copy of the SSLParameters object with the default settings
engineGetDefaultSSLParameters
()

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

protected abstract SSLSessionContext

Returns:

the SSLSessionContext object
engineGetServerSessionContext
()

Returns a server SSLSessionContext object for this context.

protected abstract SSLServerSocketFactory

Returns:

the ServerSocketFactory object
engineGetServerSocketFactory
()

Returns a ServerSocketFactory object for this context.

protected abstract SSLSocketFactory

Returns:

the SocketFactory object
engineGetSocketFactory
()

Returns a SocketFactory object for this context.

protected SSLParameters

Returns:

a copy of the SSLParameters object with the maximum supported settings
engineGetSupportedSSLParameters
()

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

protected abstract void
engineInit(KeyManager[]
the sources of authentication keys
km
,
TrustManager[]
the sources of peer authentication trust decisions
tm
,
SecureRandom
the source of randomness
sr
)

Initializes this context.

private SSLSocket
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Constructor Detail

SSLContextSpiback to summary
public SSLContextSpi()

Constructor for subclasses to call.

Method Detail

engineCreateSSLEngineback to summary
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.

Implementation Note

It is provider-specific if the returned SSLEngine uses client or server mode by default for the (D)TLS connection. The JDK SunJSSE provider implementation uses server mode by default. However, it is recommended to always set the desired mode explicitly by calling SSLEngine.setUseClientMode() before invoking other methods of the SSLEngine.

Returns:SSLEngine

the SSLEngine Object

Exceptions
IllegalStateException:
if the SSLContextImpl requires initialization and the engineInit() has not been called
Since
1.5
See Also
SSLContext#createSSLEngine()
engineCreateSSLEngineback to summary
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.

Implementation Note

It is provider-specific if the returned SSLEngine uses client or server mode by default for the (D)TLS connection. The JDK SunJSSE provider implementation uses server mode by default. However, it is recommended to always set the desired mode explicitly by calling SSLEngine.setUseClientMode() before invoking other methods of the SSLEngine.

Parameters
host:String

the non-authoritative name of the host

port:int

the non-authoritative port

Returns:SSLEngine

the SSLEngine Object

Exceptions
IllegalStateException:
if the SSLContextImpl requires initialization and the engineInit() has not been called
Since
1.5
See Also
SSLContext#createSSLEngine(String, int)
engineGetClientSessionContextback to summary
protected abstract SSLSessionContext engineGetClientSessionContext()

Returns a client SSLSessionContext object for this context.

Returns:SSLSessionContext

the SSLSessionContext object

See Also
javax.net.ssl.SSLContext#getClientSessionContext()
engineGetDefaultSSLParametersback to summary
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 SocketFactory.createSocket() method of this context's SocketFactory.

Returns:SSLParameters

a copy of the SSLParameters object with the default settings

Exceptions
UnsupportedOperationException:
if the default SSL parameters could not be obtained.
Since
1.6
engineGetServerSessionContextback to summary
protected abstract SSLSessionContext engineGetServerSessionContext()

Returns a server SSLSessionContext object for this context.

Returns:SSLSessionContext

the SSLSessionContext object

See Also
javax.net.ssl.SSLContext#getServerSessionContext()
engineGetServerSocketFactoryback to summary
protected abstract SSLServerSocketFactory engineGetServerSocketFactory()

Returns a ServerSocketFactory object for this context.

Returns:SSLServerSocketFactory

the ServerSocketFactory object

Exceptions
UnsupportedOperationException:
if the underlying provider does not implement the operation.
IllegalStateException:
if the SSLContextImpl requires initialization and the engineInit() has not been called
See Also
javax.net.ssl.SSLContext#getServerSocketFactory()
engineGetSocketFactoryback to summary
protected abstract SSLSocketFactory engineGetSocketFactory()

Returns a SocketFactory object for this context.

Returns:SSLSocketFactory

the SocketFactory object

Exceptions
UnsupportedOperationException:
if the underlying provider does not implement the operation.
IllegalStateException:
if the SSLContextImpl requires initialization and the engineInit() has not been called
See Also
javax.net.ssl.SSLContext#getSocketFactory()
engineGetSupportedSSLParametersback to summary
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 SocketFactory.createSocket() method of this context's SocketFactory.

Returns:SSLParameters

a copy of the SSLParameters object with the maximum supported settings

Exceptions
UnsupportedOperationException:
if the supported SSL parameters could not be obtained.
Since
1.6
engineInitback to summary
protected abstract void engineInit(KeyManager[] km, TrustManager[] tm, SecureRandom sr) throws KeyManagementException

Initializes this context.

Parameters
km:KeyManager[]

the sources of authentication keys

tm:TrustManager[]

the sources of peer authentication trust decisions

sr:SecureRandom

the source of randomness

Exceptions
KeyManagementException:
if this operation fails
See Also
SSLContext#init(KeyManager[], TrustManager[], SecureRandom)
getDefaultSocketback to summary
private SSLSocket getDefaultSocket()