@@ -5,10 +5,6 @@ import okhttp3.internal.tls.OkHostnameVerifier
5
5
import org.slf4j.LoggerFactory
6
6
import java.io.File
7
7
import java.io.FileInputStream
8
- import java.net.IDN
9
- import java.net.InetAddress
10
- import java.net.Socket
11
- import java.nio.charset.StandardCharsets
12
8
import java.security.KeyFactory
13
9
import java.security.KeyStore
14
10
import java.security.cert.CertificateException
@@ -21,12 +17,9 @@ import java.util.Locale
21
17
import javax.net.ssl.HostnameVerifier
22
18
import javax.net.ssl.KeyManager
23
19
import javax.net.ssl.KeyManagerFactory
24
- import javax.net.ssl.SNIServerName
25
20
import javax.net.ssl.SSLContext
26
21
import javax.net.ssl.SSLSession
27
- import javax.net.ssl.SSLSocket
28
22
import javax.net.ssl.SSLSocketFactory
29
- import javax.net.ssl.StandardConstants
30
23
import javax.net.ssl.TrustManager
31
24
import javax.net.ssl.TrustManagerFactory
32
25
import javax.net.ssl.X509TrustManager
@@ -60,7 +53,7 @@ fun sslContextFromPEMs(
60
53
val kf = KeyFactory .getInstance(" RSA" )
61
54
val keySpec = PKCS8EncodedKeySpec (pemBytes)
62
55
kf.generatePrivate(keySpec)
63
- } catch (e : InvalidKeySpecException ) {
56
+ } catch (_ : InvalidKeySpecException ) {
64
57
val kf = KeyFactory .getInstance(" EC" )
65
58
val keySpec = PKCS8EncodedKeySpec (pemBytes)
66
59
kf.generatePrivate(keySpec)
@@ -87,11 +80,7 @@ fun sslContextFromPEMs(
87
80
88
81
fun coderSocketFactory (settings : CoderTLSSettings ): SSLSocketFactory {
89
82
val sslContext = sslContextFromPEMs(settings.certPath, settings.keyPath, settings.caPath)
90
- if (settings.altHostname.isBlank()) {
91
- return sslContext.socketFactory
92
- }
93
-
94
- return AlternateNameSSLSocketFactory (sslContext.socketFactory, settings.altHostname)
83
+ return sslContext.socketFactory
95
84
}
96
85
97
86
fun coderTrustManagers (tlsCAPath : String ): Array <TrustManager > {
@@ -115,82 +104,6 @@ fun coderTrustManagers(tlsCAPath: String): Array<TrustManager> {
115
104
return trustManagerFactory.trustManagers.map { MergedSystemTrustManger (it as X509TrustManager ) }.toTypedArray()
116
105
}
117
106
118
- class AlternateNameSSLSocketFactory (private val delegate : SSLSocketFactory , private val alternateName : String ) :
119
- SSLSocketFactory () {
120
- override fun getDefaultCipherSuites (): Array <String > = delegate.defaultCipherSuites
121
-
122
- override fun getSupportedCipherSuites (): Array <String > = delegate.supportedCipherSuites
123
-
124
- override fun createSocket (): Socket {
125
- val socket = delegate.createSocket() as SSLSocket
126
- customizeSocket(socket)
127
- return socket
128
- }
129
-
130
- override fun createSocket (
131
- host : String? ,
132
- port : Int ,
133
- ): Socket {
134
- val socket = delegate.createSocket(host, port) as SSLSocket
135
- customizeSocket(socket)
136
- return socket
137
- }
138
-
139
- override fun createSocket (
140
- host : String? ,
141
- port : Int ,
142
- localHost : InetAddress ? ,
143
- localPort : Int ,
144
- ): Socket {
145
- val socket = delegate.createSocket(host, port, localHost, localPort) as SSLSocket
146
- customizeSocket(socket)
147
- return socket
148
- }
149
-
150
- override fun createSocket (
151
- host : InetAddress ? ,
152
- port : Int ,
153
- ): Socket {
154
- val socket = delegate.createSocket(host, port) as SSLSocket
155
- customizeSocket(socket)
156
- return socket
157
- }
158
-
159
- override fun createSocket (
160
- address : InetAddress ? ,
161
- port : Int ,
162
- localAddress : InetAddress ? ,
163
- localPort : Int ,
164
- ): Socket {
165
- val socket = delegate.createSocket(address, port, localAddress, localPort) as SSLSocket
166
- customizeSocket(socket)
167
- return socket
168
- }
169
-
170
- override fun createSocket (
171
- s : Socket ? ,
172
- host : String? ,
173
- port : Int ,
174
- autoClose : Boolean ,
175
- ): Socket {
176
- val socket = delegate.createSocket(s, host, port, autoClose) as SSLSocket
177
- customizeSocket(socket)
178
- return socket
179
- }
180
-
181
- private fun customizeSocket (socket : SSLSocket ) {
182
- val params = socket.sslParameters
183
-
184
- params.serverNames = listOf (RelaxedSNIHostname (alternateName))
185
- socket.sslParameters = params
186
- }
187
- }
188
-
189
- private class RelaxedSNIHostname (hostname : String ) : SNIServerName(
190
- StandardConstants .SNI_HOST_NAME ,
191
- IDN .toASCII(hostname, 0).toByteArray(StandardCharsets .UTF_8 )
192
- )
193
-
194
107
class CoderHostnameVerifier (private val alternateName : String ) : HostnameVerifier {
195
108
private val logger = LoggerFactory .getLogger(javaClass)
196
109
@@ -238,7 +151,7 @@ class MergedSystemTrustManger(private val otherTrustManager: X509TrustManager) :
238
151
) {
239
152
try {
240
153
otherTrustManager.checkClientTrusted(chain, authType)
241
- } catch (e : CertificateException ) {
154
+ } catch (_ : CertificateException ) {
242
155
systemTrustManager.checkClientTrusted(chain, authType)
243
156
}
244
157
}
@@ -249,7 +162,7 @@ class MergedSystemTrustManger(private val otherTrustManager: X509TrustManager) :
249
162
) {
250
163
try {
251
164
otherTrustManager.checkServerTrusted(chain, authType)
252
- } catch (e : CertificateException ) {
165
+ } catch (_ : CertificateException ) {
253
166
systemTrustManager.checkServerTrusted(chain, authType)
254
167
}
255
168
}
0 commit comments