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.
SSLContext
public SSLContextSpi()
protected abstract void engineInit(KeyManager[] km, TrustManager[] tm, SecureRandom sr) throws KeyManagementException
Initializes this context.
km
- the sources of authentication keystm
- the sources of peer authentication trust decisionssr
- the source of randomnessKeyManagementException
- if this operation failsSSLContext.init(KeyManager [], TrustManager [], SecureRandom)
protected abstract SSLSocketFactory engineGetSocketFactory()
Returns a SocketFactory
object for this context.
SocketFactory
objectIllegalStateException
- if the SSLContextImpl requires initialization and the engineInit()
has not been calledSSLContext.getSocketFactory()
protected abstract SSLServerSocketFactory engineGetServerSocketFactory()
Returns a ServerSocketFactory
object for this context.
ServerSocketFactory
objectIllegalStateException
- if the SSLContextImpl requires initialization and the engineInit()
has not been calledSSLContext.getServerSocketFactory()
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.
SSLEngine
ObjectIllegalStateException
- if the SSLContextImpl requires initialization and the engineInit()
has not been calledSSLContext.createSSLEngine()
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.
host
- the non-authoritative name of the hostport
- the non-authoritative portSSLEngine
ObjectIllegalStateException
- if the SSLContextImpl requires initialization and the engineInit()
has not been calledSSLContext.createSSLEngine(String, int)
protected abstract SSLSessionContext engineGetServerSessionContext()
Returns a server SSLSessionContext
object for this context.
SSLSessionContext
objectSSLContext.getServerSessionContext()
protected abstract SSLSessionContext engineGetClientSessionContext()
Returns a client SSLSessionContext
object for this context.
SSLSessionContext
objectSSLContext.getClientSessionContext()
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.
UnsupportedOperationException
- if the default SSL parameters could not be obtained.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.
UnsupportedOperationException
- if the supported SSL parameters could not be obtained.
© 1993–2017, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.