Package org.conscrypt

Class SSLParametersImpl

  • All Implemented Interfaces:
    java.lang.Cloneable

    final class SSLParametersImpl
    extends java.lang.Object
    implements java.lang.Cloneable
    The 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.
    • Field Detail

      • defaultX509KeyManager

        private static volatile javax.net.ssl.X509KeyManager defaultX509KeyManager
      • defaultX509TrustManager

        private static volatile javax.net.ssl.X509TrustManager defaultX509TrustManager
      • x509KeyManager

        private final javax.net.ssl.X509KeyManager x509KeyManager
      • x509TrustManager

        private final javax.net.ssl.X509TrustManager x509TrustManager
      • 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
      • 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.KeyManagementException
        Initializes 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. See SSLContext.init(KeyManager[],TrustManager[], SecureRandom) for more information
        Throws:
        java.security.KeyManagementException
    • Method Detail

      • initSpake

        void initSpake()
                throws java.security.KeyManagementException
        Initializes the SSL credential for the Spake.
        Throws:
        java.security.KeyManagementException
      • getDefault

        static SSLParametersImpl getDefault()
                                     throws java.security.KeyManagementException
        Throws:
        java.security.KeyManagementException
      • getX509KeyManager

        javax.net.ssl.X509KeyManager getX509KeyManager()
        Returns X.509 key manager or null for none.
      • 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()
      • 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:
        clone in class java.lang.Object
      • cloneWithTrustManager

        SSLParametersImpl cloneWithTrustManager​(javax.net.ssl.X509TrustManager newTrustManager)
      • 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()