# Class SSLContextAndOptions

java.lang.Object
org.apache.zookeeper.common.SSLContextAndOptions

public class SSLContextAndOptions extends Object
Wrapper class for an SSLContext + some config options that can't be set on the context when it is created but must be set on a secure socket created by the context after the socket creation. By wrapping the options in this class we avoid reading from global system properties during socket configuration. This makes testing easier since we can create different X509Util instances with different configurations in a single test process, and unit test interactions between them.

## Method Summary

Modifier and Type
Method
Description
`SSLServerSocket`
`createSSLServerSocket()`
`SSLServerSocket`
`createSSLServerSocket(int port)`
`SSLSocket`
`createSSLSocket()`
`SSLSocket`
`createSSLSocket(Socket socket, byte[] pushbackBytes)`
`int`
`getHandshakeDetectionTimeoutMillis()`
`SSLContext`
`getSSLContext()`

### Methods inherited from class Object

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

## Method Details

### getSSLContext

public SSLContext getSSLContext()

### createSSLSocket

public SSLSocket createSSLSocket() throws IOException

Throws:
  `IOException`

### createSSLSocket

public SSLSocket createSSLSocket(Socket socket, byte[] pushbackBytes) throws IOException

Throws:
  `IOException`

### createSSLServerSocket

public SSLServerSocket createSSLServerSocket() throws IOException

Throws:
  `IOException`

### createSSLServerSocket

public SSLServerSocket createSSLServerSocket(int port) throws IOException

Throws:
  `IOException`

### getHandshakeDetectionTimeoutMillis

public int getHandshakeDetectionTimeoutMillis()