# 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

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 Object

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

## Constructor Details

### SSLImplementation

public SSLImplementation()

## Method Details

### 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)