SSLContextSpi (Java SE 15 & JDK 15) (original) (raw)
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.
Since:
1.4
See Also:
Constructor Summary
Constructors
Constructor | Description |
---|---|
SSLContextSpi() |
Method Summary
Modifier and Type | Method | Description |
---|---|---|
protected abstract SSLEngine | engineCreateSSLEngine() | Creates a new SSLEngine using this context. |
protected abstract SSLEngine | engineCreateSSLEngine(String host, int port) | Creates a SSLEngine using this context. |
protected abstract SSLSessionContext | engineGetClientSessionContext() | Returns a client SSLSessionContext object for this context. |
protected SSLParameters | engineGetDefaultSSLParameters() | Returns a copy of the SSLParameters indicating the default settings for this SSL context. |
protected abstract SSLSessionContext | engineGetServerSessionContext() | Returns a server SSLSessionContext object for this context. |
protected abstract SSLServerSocketFactory | engineGetServerSocketFactory() | Returns a ServerSocketFactory object for this context. |
protected abstract SSLSocketFactory | engineGetSocketFactory() | Returns a SocketFactory object for this context. |
protected SSLParameters | engineGetSupportedSSLParameters() | Returns a copy of the SSLParameters indicating the maximum supported settings for this SSL context. |
protected abstract void | engineInit(KeyManager[] km,TrustManager[] tm,SecureRandom sr) | Initializes this context. |
Methods declared in class java.lang.Object
[clone](../../../java/lang/Object.html#clone%28%29), [equals](../../../java/lang/Object.html#equals%28java.lang.Object%29), [finalize](../../../java/lang/Object.html#finalize%28%29), [getClass](../../../java/lang/Object.html#getClass%28%29), [hashCode](../../../java/lang/Object.html#hashCode%28%29), [notify](../../../java/lang/Object.html#notify%28%29), [notifyAll](../../../java/lang/Object.html#notifyAll%28%29), [toString](../../../java/lang/Object.html#toString%28%29), [wait](../../../java/lang/Object.html#wait%28%29), [wait](../../../java/lang/Object.html#wait%28long%29), [wait](../../../java/lang/Object.html#wait%28long,int%29)
Constructor Details
SSLContextSpi
public SSLContextSpi()
Method Details
engineInit
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](../../../java/security/KeyManagementException.html "class in java.security")
- if this operation fails
See Also:
SSLContext.init(KeyManager [], TrustManager [], SecureRandom)engineGetSocketFactory
Returns a
SocketFactory
object for this context.
Returns:
theSocketFactory
object
Throws:
[UnsupportedOperationException](../../../java/lang/UnsupportedOperationException.html "class in java.lang")
- if the underlying provider does not implement the operation.
[IllegalStateException](../../../java/lang/IllegalStateException.html "class in java.lang")
- if the SSLContextImpl requires initialization and theengineInit()
has not been called
See Also:
SSLContext.getSocketFactory()engineGetServerSocketFactory
Returns a
ServerSocketFactory
object for this context.
Returns:
theServerSocketFactory
object
Throws:
[UnsupportedOperationException](../../../java/lang/UnsupportedOperationException.html "class in java.lang")
- if the underlying provider does not implement the operation.
[IllegalStateException](../../../java/lang/IllegalStateException.html "class in java.lang")
- if the SSLContextImpl requires initialization and theengineInit()
has not been called
See Also:
SSLContext.getServerSocketFactory()engineCreateSSLEngine
protected abstract SSLEngine engineCreateSSLEngine()
Creates a newSSLEngine
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 callingSSLEngine.setUseClientMode() before invoking other methods of the SSLEngine.
Returns:
theSSLEngine
Object
Throws:
[IllegalStateException](../../../java/lang/IllegalStateException.html "class in java.lang")
- if the SSLContextImpl requires initialization and theengineInit()
has not been called
Since:
1.5
See Also:
SSLContext.createSSLEngine()engineCreateSSLEngine
protected abstract SSLEngine engineCreateSSLEngine(String host, int port)
Creates aSSLEngine
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 callingSSLEngine.setUseClientMode() before invoking other methods of the SSLEngine.
Parameters:
host
- the non-authoritative name of the host
port
- the non-authoritative port
Returns:
theSSLEngine
Object
Throws:
[IllegalStateException](../../../java/lang/IllegalStateException.html "class in java.lang")
- if the SSLContextImpl requires initialization and theengineInit()
has not been called
Since:
1.5
See Also:
SSLContext.createSSLEngine(String, int)engineGetServerSessionContext
Returns a server
SSLSessionContext
object for this context.
Returns:
theSSLSessionContext
object
See Also:
SSLContext.getServerSessionContext()engineGetClientSessionContext
Returns a client
SSLSessionContext
object for this context.
Returns:
theSSLSessionContext
object
See Also:
SSLContext.getClientSessionContext()engineGetDefaultSSLParameters
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 theSocketFactory.createSocket() method of this context's SocketFactory.
Returns:
a copy of the SSLParameters object with the default settings
Throws:
[UnsupportedOperationException](../../../java/lang/UnsupportedOperationException.html "class in java.lang")
- if the default SSL parameters could not be obtained.
Since:
1.6engineGetSupportedSSLParameters
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 theSocketFactory.createSocket() method of this context's SocketFactory.
Returns:
a copy of the SSLParameters object with the maximum supported settings
Throws:
[UnsupportedOperationException](../../../java/lang/UnsupportedOperationException.html "class in java.lang")
- if the supported SSL parameters could not be obtained.
Since:
1.6