From c4b8b2762af26bb5c20d10d63e4d04c16ca38c81 Mon Sep 17 00:00:00 2001 From: Dulmandakh Date: Sun, 17 Mar 2019 13:25:37 +0300 Subject: [PATCH 1/2] TLS 1.3 support using Conscrypt --- ReactAndroid/build.gradle | 1 + .../react/modules/network/OkHttpClientProvider.java | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/ReactAndroid/build.gradle b/ReactAndroid/build.gradle index 4300a8423069c6..ed7275f8deec24 100644 --- a/ReactAndroid/build.gradle +++ b/ReactAndroid/build.gradle @@ -324,6 +324,7 @@ dependencies { api("com.facebook.fresco:imagepipeline-okhttp3:${FRESCO_VERSION}") api("com.facebook.soloader:soloader:${SO_LOADER_VERSION}") api("com.google.code.findbugs:jsr305:3.0.2") + implementation('org.conscrypt:conscrypt-android:2.0.0') api("com.squareup.okhttp3:okhttp:${OKHTTP_VERSION}") api("com.squareup.okhttp3:okhttp-urlconnection:${OKHTTP_VERSION}") api("com.squareup.okio:okio:1.15.0") diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/network/OkHttpClientProvider.java b/ReactAndroid/src/main/java/com/facebook/react/modules/network/OkHttpClientProvider.java index ceeaf874a2a8e7..34aefeabbb1276 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/network/OkHttpClientProvider.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/network/OkHttpClientProvider.java @@ -13,6 +13,8 @@ import com.facebook.common.logging.FLog; import java.io.File; +import java.security.Provider; +import java.security.Security; import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; @@ -69,7 +71,14 @@ public static OkHttpClient.Builder createClientBuilder() { .writeTimeout(0, TimeUnit.MILLISECONDS) .cookieJar(new ReactCookieJarContainer()); - return enableTls12OnPreLollipop(client); + try { + Class ConscryptProvider = Class.forName("org.conscrypt.OpenSSLProvider"); + Security.insertProviderAt( + (Provider) ConscryptProvider.newInstance(), 1); + return client; + } catch (Exception e) { + return enableTls12OnPreLollipop(client); + } } public static OkHttpClient.Builder createClientBuilder(Context context) { From 4d7d5e8ba5159b333fec886ce76ad3a8ca0d780d Mon Sep 17 00:00:00 2001 From: Dulmandakh Date: Mon, 18 Mar 2019 13:19:57 +0000 Subject: [PATCH 2/2] remove conscrypt dependency --- ReactAndroid/build.gradle | 1 - 1 file changed, 1 deletion(-) diff --git a/ReactAndroid/build.gradle b/ReactAndroid/build.gradle index ed7275f8deec24..4300a8423069c6 100644 --- a/ReactAndroid/build.gradle +++ b/ReactAndroid/build.gradle @@ -324,7 +324,6 @@ dependencies { api("com.facebook.fresco:imagepipeline-okhttp3:${FRESCO_VERSION}") api("com.facebook.soloader:soloader:${SO_LOADER_VERSION}") api("com.google.code.findbugs:jsr305:3.0.2") - implementation('org.conscrypt:conscrypt-android:2.0.0') api("com.squareup.okhttp3:okhttp:${OKHTTP_VERSION}") api("com.squareup.okhttp3:okhttp-urlconnection:${OKHTTP_VERSION}") api("com.squareup.okio:okio:1.15.0")