1
0
mirror of https://github.com/owncloud/android-library.git synced 2025-07-23 18:06:17 +00:00

Use TLSv1.3 if available

This commit is contained in:
agarcia 2020-06-15 14:16:45 +02:00
parent 7710db7612
commit 76a808cb0d
2 changed files with 16 additions and 11 deletions

View File

@ -71,16 +71,21 @@ public class HttpClient {
SSLContext sslContext; SSLContext sslContext;
try { try {
sslContext = SSLContext.getInstance("TLSv1.2"); sslContext = SSLContext.getInstance("TLSv1.3");
} catch (NoSuchAlgorithmException tlsv12Exception) { } catch (NoSuchAlgorithmException tlsv13Exception) {
try { try {
Timber.w("TLSv1.2 is not supported in this device; falling through TLSv1.1"); Timber.w("TLSv1.3 is not supported in this device; falling through TLSv1.2");
sslContext = SSLContext.getInstance("TLSv1.1"); sslContext = SSLContext.getInstance("TLSv1.2");
} catch (NoSuchAlgorithmException tlsv11Exception) { } catch (NoSuchAlgorithmException tlsv12Exception) {
Timber.w("TLSv1.1 is not supported in this device; falling through TLSv1.0"); try {
sslContext = SSLContext.getInstance("TLSv1"); Timber.w("TLSv1.2 is not supported in this device; falling through TLSv1.1");
// should be available in any device; see reference of supported protocols in sslContext = SSLContext.getInstance("TLSv1.1");
// http://developer.android.com/reference/javax/net/ssl/SSLSocket.html } catch (NoSuchAlgorithmException tlsv11Exception) {
Timber.w("TLSv1.1 is not supported in this device; falling through TLSv1.0");
sslContext = SSLContext.getInstance("TLSv1");
// should be available in any device; see reference of supported protocols in
// http://developer.android.com/reference/javax/net/ssl/SSLSocket.html
}
} }
} }

View File

@ -74,8 +74,8 @@ public class TLSSocketFactory extends SSLSocketFactory {
} }
private Socket enableTLSOnSocket(Socket socket) { private Socket enableTLSOnSocket(Socket socket) {
if(socket != null && (socket instanceof SSLSocket)) { if((socket instanceof SSLSocket)) {
((SSLSocket)socket).setEnabledProtocols(new String[] {"TLSv1.1", "TLSv1.2"}); ((SSLSocket)socket).setEnabledProtocols(new String[] {"TLSv1.1", "TLSv1.2", "TLSv1.3"});
} }
return socket; return socket;
} }