aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/OkHttpClientFactory.java
diff options
context:
space:
mode:
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/OkHttpClientFactory.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/OkHttpClientFactory.java55
1 files changed, 55 insertions, 0 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/OkHttpClientFactory.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/OkHttpClientFactory.java
new file mode 100644
index 000000000..2bf3b7e14
--- /dev/null
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/OkHttpClientFactory.java
@@ -0,0 +1,55 @@
+package org.sufficientlysecure.keychain.util;
+
+import okhttp3.CertificatePinner;
+import okhttp3.OkHttpClient;
+import org.sufficientlysecure.keychain.Constants;
+
+import java.io.IOException;
+import java.net.Proxy;
+import java.net.URL;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Created by Michał Kępkowski on 11/03/16.
+ */
+public class OkHttpClientFactory {
+ private static OkHttpClient client;
+
+ public static OkHttpClient getSimpleClient(){
+ if(client == null){
+ client = new OkHttpClient.Builder().build();
+ }
+ return client;
+ }
+
+ public static OkHttpClient getPinnedSimpleClient(CertificatePinner pinner){
+ return new OkHttpClient.Builder()
+ .certificatePinner(pinner)
+ .build();
+ }
+
+
+ public static OkHttpClient getPinnedClient(URL url, Proxy proxy) throws IOException, TlsHelper.TlsHelperException {
+
+ return new OkHttpClient.Builder()
+ .followRedirects(false)
+ .followSslRedirects(false)
+ .proxy(proxy)
+ .connectTimeout(30000, TimeUnit.MILLISECONDS)
+ .readTimeout(45000, TimeUnit.MILLISECONDS)
+ .sslSocketFactory(TlsHelper.getPinnedSslSocketFactory(url))
+ .build();
+ }
+
+ public static OkHttpClient getClient( Proxy proxy) throws IOException, TlsHelper.TlsHelperException {
+
+ return new OkHttpClient.Builder()
+ .followRedirects(false)
+ .followSslRedirects(false)
+ .proxy(proxy)
+ .connectTimeout(30000, TimeUnit.MILLISECONDS)
+ .readTimeout(45000, TimeUnit.MILLISECONDS)
+ .build();
+ }
+
+}