com.verisign.epp.transport.client

## Class EPPSSLImpl

- java.lang.Object
- - com.verisign.epp.transport.client.EPPSSLImpl

-     public class EPPSSLImpl
      extends java.lang.Object

  EPP SSL Implementation utility class that is used to initialize the SSL configuration by using configuration properties including:
  - `EPP.SSLProtocol` - Required property that can be either SSL, SSLv2, SSLv3, TLS, or TLSv1
  - `EPP.SSLKeyManager` - Required SSL key manager property, for example, SunX509
  - `EPP.SSLKeyStore` - Required SSL Keystore format property, for example, JKS
  - `EPP.SSLKeyFileName` - Required Identity SSL Keystore file name.
  - `EPP.SSLPassPhrase` - Required Identity SSL Keystore passphrase.
  - `EPP.SSLKeyPassPhrase` - Optional Identity SSL private key passphrase. If not defined, `EPP.SSLPassPhrase` is used.
  - `EPP.SSLTrustStoreFileName` - Optional Trust SSK Keystore file name. If not defined, the trust Keystore of the JRE is used.
  - EPP.SSLTrustStorePassPhrase - Optional Trust SSL Keystore passphrase. This is required if `EPP.SSLTrustStoreFileName` is specified.
  This class includes a set of static properties and methods that can be used to initialize SSL and to get the resulting initialized `SSLContext` and `SSLSocketFactory`. The `initialize` method is synchronized and will immediately return if `EPPSSLImpl` has already been successfully initialized. The method `isInitialized` can be used to check if `EPPSSLImpl` has already been initialized.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `EPPSSLImpl()`

  - ### Method Summary

    All Methods Static Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static EPPSSLContext` | `getEPPSSLContext()` Gets the single `EPPSSLContext` initialized by the `EPPSSLImpl`.
    `static javax.net.ssl.SSLContext` | `getSSLContext()` Gets the SSLContext that has been initialized if `isInitialized` returns `true`, otherwise it will be `null`.
    `static java.lang.String[]` | `getSSLEnabledCipherSuites()` Gets the SSL enabled cipher suites.
    `static java.lang.String[]` | `getSSLEnabledProtocols()` Gets the SSL enabled protocols.
    `static javax.net.ssl.SSLSocketFactory` | `getSSLSocketFactory()` Gets the initialize `SSLSocketFactory`.
    `static boolean` | `hasSSLEnabledCipherSuites()` Is the SSL enabled cipher suites specified?
    `static boolean` | `hasSSLEnabledProtocols()` Is the SSL enabled protocols specified?
    `static void` | `initialize()` Initialize the `EPPSSLImpl`, which will create an initialize the `SSLContext`.
    `static EPPSSLContext` | `initialize(EPPSSLConfig aConfig)`
    `static boolean` | `isInitialized()` Has EPPSSLImpl been successfully initialized?

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### EPPSSLImpl

          public EPPSSLImpl()

  - ### Method Detail

    - #### getSSLContext

          public static javax.net.ssl.SSLContext getSSLContext()

      Gets the SSLContext that has been initialized if `isInitialized` returns `true`, otherwise it will be `null`.
      Returns:
        Initialized `SSLContext` if successfully initialized; `null` otherwise.

    - #### hasSSLEnabledProtocols

          public static boolean hasSSLEnabledProtocols()

      Is the SSL enabled protocols specified?
      Returns:
        `true` if specified;`false` otherwise.

    - #### getSSLEnabledProtocols

          public static java.lang.String[] getSSLEnabledProtocols()

      Gets the SSL enabled protocols.
      Returns:
        `String` array of SSL enabled protocols if defined; `null` otherwise.

    - #### hasSSLEnabledCipherSuites

          public static boolean hasSSLEnabledCipherSuites()

      Is the SSL enabled cipher suites specified?
      Returns:
        `true` if specified;`false` otherwise.

    - #### getSSLEnabledCipherSuites

          public static java.lang.String[] getSSLEnabledCipherSuites()

      Gets the SSL enabled cipher suites.
      Returns:
        `String` array of SSL enabled cipher suites if defined;`null` otherwise.

    - #### getEPPSSLContext

          public static EPPSSLContext getEPPSSLContext()

      Gets the single `EPPSSLContext` initialized by the `EPPSSLImpl`.
      Returns:
        Single `EPPSSLContext` instance if initialized; `null` otherwise.

    - #### isInitialized

          public static boolean isInitialized()

      Has EPPSSLImpl been successfully initialized?
      Returns:
        `true` if initialized; `false` otherwise

    - #### getSSLSocketFactory

          public static javax.net.ssl.SSLSocketFactory getSSLSocketFactory()

      Gets the initialize `SSLSocketFactory`.
      Returns:
        Initialized `SSLSocketFactory` if successfully initialized; `null` otherwise.

    - #### initialize

          public static EPPSSLContext initialize(EPPSSLConfig aConfig)
                                          throws EPPConException

      Throws:
        `EPPConException`

    - #### initialize

          public static void initialize()
                                 throws EPPConException

      Initialize the `EPPSSLImpl`, which will create an initialize the `SSLContext`. If `EPPSSLImpl` has already been successfully initialized, this method will simply return.
      Throws:
        `EPPConException` - Error initializing `EPPSSLImpl`