Skip to content

Commit d12beff

Browse files
committed
LIBff11121: Support for TLSv1.1 and TLSv1.2 only servers
1 parent cdce116 commit d12beff

1 file changed

Lines changed: 18 additions & 2 deletions

File tree

library/src/main/java/com/vorlonsoft/android/http/MySSLSocketFactory.java

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232

3333
import javax.net.ssl.HttpsURLConnection;
3434
import javax.net.ssl.SSLContext;
35+
import javax.net.ssl.SSLParameters;
36+
import javax.net.ssl.SSLSocket;
3537
import javax.net.ssl.TrustManager;
3638
import javax.net.ssl.X509TrustManager;
3739

@@ -194,12 +196,26 @@ public static DefaultHttpClient getNewHttpClient(KeyStore keyStore) {
194196

195197
@Override
196198
public Socket createSocket(Socket socket, String host, int port, boolean autoClose) throws IOException {
197-
return sslContext.getSocketFactory().createSocket(socket, host, port, autoClose);
199+
Socket localSocket = sslContext.getSocketFactory().createSocket(socket, host, port, autoClose);
200+
enableSecureProtocols(localSocket);
201+
return localSocket;
198202
}
199203

200204
@Override
201205
public Socket createSocket() throws IOException {
202-
return sslContext.getSocketFactory().createSocket();
206+
Socket socket = sslContext.getSocketFactory().createSocket();
207+
enableSecureProtocols(socket);
208+
return socket;
209+
}
210+
211+
/**
212+
* Activate supported protocols on the socket.
213+
* @param socket The socket on which to activate secure protocols.
214+
*/
215+
private void enableSecureProtocols(Socket socket) {
216+
// set all supported protocols
217+
SSLParameters params = sslContext.getSupportedSSLParameters();
218+
((SSLSocket) socket).setEnabledProtocols(params.getProtocols());
203219
}
204220

205221
/**

0 commit comments

Comments
 (0)