Skip to content

Commit d4e5352

Browse files
authored
Merge pull request android-async-http#1032 from Movidone/master
Support for TLSv1.1 and TLSv1.2 only servers
2 parents 3a7b502 + cdaf39e commit d4e5352

File tree

1 file changed

+20
-4
lines changed

1 file changed

+20
-4
lines changed

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

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434

3535
import javax.net.ssl.HttpsURLConnection;
3636
import javax.net.ssl.SSLContext;
37+
import javax.net.ssl.SSLParameters;
38+
import javax.net.ssl.SSLSocket;
3739
import javax.net.ssl.TrustManager;
3840
import javax.net.ssl.X509TrustManager;
3941

@@ -196,12 +198,27 @@ public static DefaultHttpClient getNewHttpClient(KeyStore keyStore) {
196198

197199
@Override
198200
public Socket createSocket(Socket socket, String host, int port, boolean autoClose) throws IOException {
199-
return sslContext.getSocketFactory().createSocket(socket, host, port, autoClose);
201+
Socket localSocket = sslContext.getSocketFactory().createSocket(socket, host, port, autoClose);
202+
enableSecureProtocols(localSocket);
203+
return localSocket;
200204
}
201205

202206
@Override
203207
public Socket createSocket() throws IOException {
204-
return sslContext.getSocketFactory().createSocket();
208+
Socket socket = sslContext.getSocketFactory().createSocket();
209+
enableSecureProtocols(socket);
210+
return socket;
211+
}
212+
213+
/**
214+
* Activate supported protocols on the socket.
215+
*
216+
* @param socket The socket on which to activate secure protocols.
217+
*/
218+
private void enableSecureProtocols(Socket socket) {
219+
// set all supported protocols
220+
SSLParameters params = sslContext.getSupportedSSLParameters();
221+
((SSLSocket) socket).setEnabledProtocols(params.getProtocols());
205222
}
206223

207224
/**
@@ -210,5 +227,4 @@ public Socket createSocket() throws IOException {
210227
public void fixHttpsURLConnection() {
211228
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
212229
}
213-
214-
}
230+
}

0 commit comments

Comments
 (0)