Slide 60
Slide 60 text
class TlsSocketFactory(private val delegate: SSLSocketFactory) : SSLSocketFactory() {
override fun getDefaultCipherSuites(): Array
= delegate.defaultCipherSuites
override fun createSocket(s: Socket?, host: String?, port: Int, autoClose: Boolean): Socket
= delegate.createSocket(s, host, port, autoClose).let(this::patch)
override fun createSocket(host: String?, port: Int): Socket
= delegate.createSocket(host, port).let(this::patch)
override fun createSocket(host: String?, port: Int, localHost: InetAddress?, localPort: Int): Socket
= delegate.createSocket(host, port, localHost, localPort).let(this::patch)
override fun createSocket(host: InetAddress?, port: Int): Socket
= delegate.createSocket(host, port).let(this::patch)
override fun createSocket(address: InetAddress?, port: Int, localAddress: InetAddress?, localPort: Int): Socket
= delegate.createSocket(address, port, localAddress, localPort).let(this::patch)
override fun getSupportedCipherSuites(): Array
= delegate.supportedCipherSuites
private fun patch(s: Socket): Socket
= s.apply { if (this is SSLSocket) enabledProtocols = arrayOf("TLSv1.2") }
}
Enable TLS 1.2
https://github.com/square/okhttp/issues/2372