Package org.conscrypt
Class SSLParametersImpl
- java.lang.Object
-
- org.conscrypt.SSLParametersImpl
-
- All Implemented Interfaces:
java.lang.Cloneable
final class SSLParametersImpl extends java.lang.Object implements java.lang.CloneableThe instances of this class encapsulate all the info about enabled cipher suites and protocols, as well as the information about client/server mode of ssl socket, whether it require/want client authentication or not, and controls whether new SSL sessions may be established by this socket or not.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static interfaceSSLParametersImpl.AliasChooser(package private) static interfaceSSLParametersImpl.PSKCallbacks
-
Field Summary
Fields Modifier and Type Field Description private java.security.AlgorithmConstraintsalgorithmConstraints(package private) byte[]applicationProtocols(package private) ApplicationProtocolSelectorAdapterapplicationProtocolSelector(package private) booleanchannelIdEnabledWhether the TLS Channel ID extension is enabled.private booleanclient_modeprivate ClientSessionContextclientSessionContextprivate booleanctVerificationEnabledprivate static SSLParametersImpldefaultParametersprivate static javax.net.ssl.X509KeyManagerdefaultX509KeyManagerprivate static javax.net.ssl.X509TrustManagerdefaultX509TrustManagerprivate static java.lang.String[]EMPTY_STRING_ARRAYprivate booleanenable_session_creation(package private) java.lang.String[]enabledCipherSuites(package private) java.lang.String[]enabledProtocolsprivate java.lang.StringendpointIdentificationAlgorithm(package private) booleanisEnabledProtocolsFiltered(package private) java.lang.String[]namedGroupsprivate booleanneed_client_auth(package private) byte[]ocspResponseprivate PSKKeyManagerpskKeyManager(package private) byte[]sctExtensionprivate ServerSessionContextserverSessionContextprivate java.util.Collection<javax.net.ssl.SNIMatcher>sniMatchersprivate Spake2PlusKeyManagerspake2PlusKeyManagerprivate Spake2PlusTrustManagerspake2PlusTrustManagerprivate booleanuseCipherSuitesOrder(package private) booleanuseSessionTicketsprivate java.lang.BooleanuseSniprivate booleanwant_client_authprivate javax.net.ssl.X509KeyManagerx509KeyManagerprivate javax.net.ssl.X509TrustManagerx509TrustManager
-
Constructor Summary
Constructors Modifier Constructor Description (package private)SSLParametersImpl(javax.net.ssl.KeyManager[] kms, javax.net.ssl.TrustManager[] tms, java.security.SecureRandom sr, ClientSessionContext clientSessionContext, ServerSessionContext serverSessionContext, java.lang.String[] protocols)Initializes the parameters.privateSSLParametersImpl(ClientSessionContext clientSessionContext, ServerSessionContext serverSessionContext, javax.net.ssl.X509KeyManager x509KeyManager, PSKKeyManager pskKeyManager, javax.net.ssl.X509TrustManager x509TrustManager, Spake2PlusTrustManager spake2PlusTrustManager, Spake2PlusKeyManager spake2PlusKeyManager, SSLParametersImpl sslParams)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected java.lang.Objectclone()(package private) SSLParametersImplcloneWithSpake()(package private) SSLParametersImplcloneWithTrustManager(javax.net.ssl.X509TrustManager newTrustManager)private static javax.net.ssl.X509KeyManagercreateDefaultX509KeyManager()private static javax.net.ssl.X509TrustManagercreateDefaultX509TrustManager()private static java.lang.String[]filterFromCipherSuites(java.lang.String[] cipherSuites, java.util.Set<java.lang.String> toRemove)private static java.lang.String[]filterFromProtocols(java.lang.String[] protocols, java.util.List<java.lang.String> obsoleteProtocols)private static PSKKeyManagerfindFirstPSKKeyManager(javax.net.ssl.KeyManager[] kms)private static Spake2PlusKeyManagerfindFirstSpake2PlusKeyManager(javax.net.ssl.KeyManager[] kms)private static Spake2PlusTrustManagerfindFirstSpake2PlusTrustManager(javax.net.ssl.TrustManager[] tms)private static javax.net.ssl.X509KeyManagerfindFirstX509KeyManager(javax.net.ssl.KeyManager[] kms)private static javax.net.ssl.X509TrustManagerfindFirstX509TrustManager(javax.net.ssl.TrustManager[] tms)(package private) java.security.AlgorithmConstraintsgetAlgorithmConstraints()(package private) java.lang.String[]getApplicationProtocols()(package private) ApplicationProtocolSelectorAdaptergetApplicationProtocolSelector()(package private) ClientSessionContextgetClientSessionContext()(package private) static SSLParametersImplgetDefault()private static java.lang.String[]getDefaultCipherSuites(boolean x509CipherSuitesNeeded, boolean pskCipherSuitesNeeded, boolean spake2PlusCipherSuitesNeeded)private static javax.net.ssl.X509KeyManagergetDefaultX509KeyManager()(package private) static javax.net.ssl.X509TrustManagergetDefaultX509TrustManager()(package private) java.lang.String[]getEnabledCipherSuites()(package private) java.lang.String[]getEnabledProtocols()(package private) booleangetEnableSessionCreation()(package private) java.lang.StringgetEndpointIdentificationAlgorithm()(package private) java.lang.String[]getNamedGroups()(package private) booleangetNeedClientAuth()(package private) byte[]getOCSPResponse()(package private) PSKKeyManagergetPSKKeyManager()(package private) ServerSessionContextgetServerSessionContext()(package private) AbstractSessionContextgetSessionContext()(package private) java.util.Collection<javax.net.ssl.SNIMatcher>getSNIMatchers()(package private) Spake2PlusKeyManagergetSpake2PlusKeyManager()(package private) booleangetUseCipherSuitesOrder()(package private) booleangetUseClientMode()(package private) booleangetUseSni()(package private) booleangetWantClientAuth()(package private) javax.net.ssl.X509KeyManagergetX509KeyManager()Returns X.509 key manager or null for none.(package private) javax.net.ssl.X509TrustManagergetX509TrustManager()(package private) voidinitSpake()Initializes the SSL credential for the Spake.(package private) booleanisCTVerificationEnabled(java.lang.String hostname)private booleanisSniEnabledByDefault()(package private) booleanisSpake()(package private) voidsetAlgorithmConstraints(java.security.AlgorithmConstraints algorithmConstraints)(package private) voidsetApplicationProtocols(java.lang.String[] protocols)(package private) voidsetApplicationProtocolSelector(ApplicationProtocolSelectorAdapter applicationProtocolSelector)(package private) voidsetCTVerificationEnabled(boolean enabled)(package private) voidsetEnabledCipherSuites(java.lang.String[] cipherSuites)(package private) voidsetEnabledProtocols(java.lang.String[] protocols)(package private) voidsetEnableSessionCreation(boolean flag)(package private) voidsetEndpointIdentificationAlgorithm(java.lang.String endpointIdentificationAlgorithm)(package private) voidsetNamedGroups(java.lang.String[] namedGroups)(package private) voidsetNeedClientAuth(boolean need)(package private) voidsetOCSPResponse(byte[] response)(package private) voidsetSCTExtension(byte[] extension)(package private) voidsetSNIMatchers(java.util.Collection<javax.net.ssl.SNIMatcher> sniMatchers)(package private) voidsetUseCipherSuitesOrder(boolean useCipherSuitesOrder)(package private) voidsetUseClientMode(boolean mode)(package private) voidsetUseSessionTickets(boolean useSessionTickets)(package private) voidsetUseSni(boolean flag)(package private) voidsetWantClientAuth(boolean want)
-
-
-
Field Detail
-
defaultX509KeyManager
private static volatile javax.net.ssl.X509KeyManager defaultX509KeyManager
-
defaultX509TrustManager
private static volatile javax.net.ssl.X509TrustManager defaultX509TrustManager
-
defaultParameters
private static volatile SSLParametersImpl defaultParameters
-
clientSessionContext
private final ClientSessionContext clientSessionContext
-
serverSessionContext
private final ServerSessionContext serverSessionContext
-
x509KeyManager
private final javax.net.ssl.X509KeyManager x509KeyManager
-
pskKeyManager
private final PSKKeyManager pskKeyManager
-
x509TrustManager
private final javax.net.ssl.X509TrustManager x509TrustManager
-
spake2PlusTrustManager
private final Spake2PlusTrustManager spake2PlusTrustManager
-
spake2PlusKeyManager
private final Spake2PlusKeyManager spake2PlusKeyManager
-
enabledProtocols
java.lang.String[] enabledProtocols
-
isEnabledProtocolsFiltered
boolean isEnabledProtocolsFiltered
-
enabledCipherSuites
java.lang.String[] enabledCipherSuites
-
namedGroups
java.lang.String[] namedGroups
-
client_mode
private boolean client_mode
-
need_client_auth
private boolean need_client_auth
-
want_client_auth
private boolean want_client_auth
-
enable_session_creation
private boolean enable_session_creation
-
endpointIdentificationAlgorithm
private java.lang.String endpointIdentificationAlgorithm
-
useCipherSuitesOrder
private boolean useCipherSuitesOrder
-
sniMatchers
private java.util.Collection<javax.net.ssl.SNIMatcher> sniMatchers
-
algorithmConstraints
private java.security.AlgorithmConstraints algorithmConstraints
-
ctVerificationEnabled
private boolean ctVerificationEnabled
-
sctExtension
byte[] sctExtension
-
ocspResponse
byte[] ocspResponse
-
applicationProtocols
byte[] applicationProtocols
-
applicationProtocolSelector
ApplicationProtocolSelectorAdapter applicationProtocolSelector
-
useSessionTickets
boolean useSessionTickets
-
useSni
private java.lang.Boolean useSni
-
channelIdEnabled
boolean channelIdEnabled
Whether the TLS Channel ID extension is enabled. This field is server-side only.
-
EMPTY_STRING_ARRAY
private static final java.lang.String[] EMPTY_STRING_ARRAY
-
-
Constructor Detail
-
SSLParametersImpl
SSLParametersImpl(javax.net.ssl.KeyManager[] kms, javax.net.ssl.TrustManager[] tms, java.security.SecureRandom sr, ClientSessionContext clientSessionContext, ServerSessionContext serverSessionContext, java.lang.String[] protocols) throws java.security.KeyManagementExceptionInitializes the parameters. Naturally this constructor is used in SSLContextImpl.engineInit method which directly passes its parameters. In other words this constructor holds all the functionality provided by SSLContext.init method. SeeSSLContext.init(KeyManager[],TrustManager[], SecureRandom)for more information- Throws:
java.security.KeyManagementException
-
SSLParametersImpl
private SSLParametersImpl(ClientSessionContext clientSessionContext, ServerSessionContext serverSessionContext, javax.net.ssl.X509KeyManager x509KeyManager, PSKKeyManager pskKeyManager, javax.net.ssl.X509TrustManager x509TrustManager, Spake2PlusTrustManager spake2PlusTrustManager, Spake2PlusKeyManager spake2PlusKeyManager, SSLParametersImpl sslParams)
-
-
Method Detail
-
initSpake
void initSpake() throws java.security.KeyManagementExceptionInitializes the SSL credential for the Spake.- Throws:
java.security.KeyManagementException
-
getDefault
static SSLParametersImpl getDefault() throws java.security.KeyManagementException
- Throws:
java.security.KeyManagementException
-
getSessionContext
AbstractSessionContext getSessionContext()
-
getClientSessionContext
ClientSessionContext getClientSessionContext()
-
getServerSessionContext
ServerSessionContext getServerSessionContext()
-
getX509KeyManager
javax.net.ssl.X509KeyManager getX509KeyManager()
Returns X.509 key manager or null for none.
-
getPSKKeyManager
PSKKeyManager getPSKKeyManager()
-
getSpake2PlusKeyManager
Spake2PlusKeyManager getSpake2PlusKeyManager()
-
getX509TrustManager
javax.net.ssl.X509TrustManager getX509TrustManager()
-
getEnabledCipherSuites
java.lang.String[] getEnabledCipherSuites()
-
setEnabledCipherSuites
void setEnabledCipherSuites(java.lang.String[] cipherSuites)
-
getEnabledProtocols
java.lang.String[] getEnabledProtocols()
-
setEnabledProtocols
void setEnabledProtocols(java.lang.String[] protocols)
-
setNamedGroups
void setNamedGroups(java.lang.String[] namedGroups)
-
getNamedGroups
java.lang.String[] getNamedGroups()
-
setApplicationProtocols
void setApplicationProtocols(java.lang.String[] protocols)
-
getApplicationProtocols
java.lang.String[] getApplicationProtocols()
-
setApplicationProtocolSelector
void setApplicationProtocolSelector(ApplicationProtocolSelectorAdapter applicationProtocolSelector)
-
getApplicationProtocolSelector
ApplicationProtocolSelectorAdapter getApplicationProtocolSelector()
-
setUseClientMode
void setUseClientMode(boolean mode)
-
getUseClientMode
boolean getUseClientMode()
-
setNeedClientAuth
void setNeedClientAuth(boolean need)
-
getNeedClientAuth
boolean getNeedClientAuth()
-
setWantClientAuth
void setWantClientAuth(boolean want)
-
getWantClientAuth
boolean getWantClientAuth()
-
setEnableSessionCreation
void setEnableSessionCreation(boolean flag)
-
getEnableSessionCreation
boolean getEnableSessionCreation()
-
setUseSessionTickets
void setUseSessionTickets(boolean useSessionTickets)
-
setUseSni
void setUseSni(boolean flag)
-
getUseSni
boolean getUseSni()
-
setCTVerificationEnabled
void setCTVerificationEnabled(boolean enabled)
-
setSCTExtension
void setSCTExtension(byte[] extension)
-
setOCSPResponse
void setOCSPResponse(byte[] response)
-
getOCSPResponse
byte[] getOCSPResponse()
-
filterFromProtocols
private static java.lang.String[] filterFromProtocols(java.lang.String[] protocols, java.util.List<java.lang.String> obsoleteProtocols)
-
filterFromCipherSuites
private static java.lang.String[] filterFromCipherSuites(java.lang.String[] cipherSuites, java.util.Set<java.lang.String> toRemove)
-
isSniEnabledByDefault
private boolean isSniEnabledByDefault()
-
clone
protected java.lang.Object clone()
- Overrides:
clonein classjava.lang.Object
-
cloneWithTrustManager
SSLParametersImpl cloneWithTrustManager(javax.net.ssl.X509TrustManager newTrustManager)
-
cloneWithSpake
SSLParametersImpl cloneWithSpake()
-
getDefaultX509KeyManager
private static javax.net.ssl.X509KeyManager getDefaultX509KeyManager() throws java.security.KeyManagementException- Throws:
java.security.KeyManagementException
-
createDefaultX509KeyManager
private static javax.net.ssl.X509KeyManager createDefaultX509KeyManager() throws java.security.KeyManagementException- Throws:
java.security.KeyManagementException
-
findFirstX509KeyManager
private static javax.net.ssl.X509KeyManager findFirstX509KeyManager(javax.net.ssl.KeyManager[] kms)
-
findFirstPSKKeyManager
private static PSKKeyManager findFirstPSKKeyManager(javax.net.ssl.KeyManager[] kms)
-
findFirstSpake2PlusKeyManager
private static Spake2PlusKeyManager findFirstSpake2PlusKeyManager(javax.net.ssl.KeyManager[] kms)
-
getDefaultX509TrustManager
static javax.net.ssl.X509TrustManager getDefaultX509TrustManager() throws java.security.KeyManagementException- Throws:
java.security.KeyManagementException
-
createDefaultX509TrustManager
private static javax.net.ssl.X509TrustManager createDefaultX509TrustManager() throws java.security.KeyManagementException- Throws:
java.security.KeyManagementException
-
findFirstX509TrustManager
private static javax.net.ssl.X509TrustManager findFirstX509TrustManager(javax.net.ssl.TrustManager[] tms)
-
findFirstSpake2PlusTrustManager
private static Spake2PlusTrustManager findFirstSpake2PlusTrustManager(javax.net.ssl.TrustManager[] tms)
-
getEndpointIdentificationAlgorithm
java.lang.String getEndpointIdentificationAlgorithm()
-
setEndpointIdentificationAlgorithm
void setEndpointIdentificationAlgorithm(java.lang.String endpointIdentificationAlgorithm)
-
getUseCipherSuitesOrder
boolean getUseCipherSuitesOrder()
-
getSNIMatchers
java.util.Collection<javax.net.ssl.SNIMatcher> getSNIMatchers()
-
setSNIMatchers
void setSNIMatchers(java.util.Collection<javax.net.ssl.SNIMatcher> sniMatchers)
-
getAlgorithmConstraints
java.security.AlgorithmConstraints getAlgorithmConstraints()
-
setAlgorithmConstraints
void setAlgorithmConstraints(java.security.AlgorithmConstraints algorithmConstraints)
-
setUseCipherSuitesOrder
void setUseCipherSuitesOrder(boolean useCipherSuitesOrder)
-
getDefaultCipherSuites
private static java.lang.String[] getDefaultCipherSuites(boolean x509CipherSuitesNeeded, boolean pskCipherSuitesNeeded, boolean spake2PlusCipherSuitesNeeded)
-
isCTVerificationEnabled
boolean isCTVerificationEnabled(java.lang.String hostname)
-
isSpake
boolean isSpake()
-
-