Package org.apache.tomcat.util.net

## Class SSLImplementation

- java.lang.Object
- - org.apache.tomcat.util.net.SSLImplementation

- Direct Known Subclasses:
    `JSSEImplementation`, `OpenSSLImplementation`

      public abstract class SSLImplementation
      extends Object

  Provides a factory and base implementation for the Tomcat specific mechanism that allows alternative SSL/TLS implementations to be used without requiring the implementation of a full JSSE provider.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SSLImplementation()` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static SSLImplementation` | `getInstance​(String className)` | Obtain an instance (not a singleton) of the implementation with the given class name.
    `abstract SSLSupport` | `getSSLSupport​(SSLSession session, Map<String,​List<String>> additionalAttributes)` | Obtain an instance of SSLSupport.
    `abstract SSLUtil` | `getSSLUtil​(SSLHostConfigCertificate certificate)` |

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

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

- - ### Constructor Detail

    - #### SSLImplementation

          public SSLImplementation()

  - ### Method Detail

    - #### getInstance

          public static SSLImplementation getInstance​(String className)
                                               throws ClassNotFoundException

      Obtain an instance (not a singleton) of the implementation with the given class name.
      Parameters:
        `className` - The class name of the required implementation or null to use the default (currently `JSSEImplementation`.
      Returns:
        An instance of the required implementation
      Throws:
        `ClassNotFoundException` - If an instance of the requested class cannot be created

    - #### getSSLSupport

          public abstract SSLSupport getSSLSupport​(SSLSession session,
                                                   Map<String,​List<String>> additionalAttributes)

      Obtain an instance of SSLSupport.
      Parameters:
        `session` - The SSL session
        `additionalAttributes` - Additional SSL attributes that are not available from the session.
      Returns:
        An instance of SSLSupport based on the given session and the provided additional attributes

    - #### getSSLUtil

          public abstract SSLUtil getSSLUtil​(SSLHostConfigCertificate certificate)