From 319589d126dd5e5fa20ee146f52268c99559f04c Mon Sep 17 00:00:00 2001 From: cyBerta Date: Wed, 3 Jan 2018 15:59:30 +0100 Subject: 8773 preseeded providers implementation for production flavor --- .../se/leap/bitmaskclient/ProviderManager.java | 53 +++++++++++----------- 1 file changed, 27 insertions(+), 26 deletions(-) (limited to 'app/src/main/java/se/leap/bitmaskclient/ProviderManager.java') diff --git a/app/src/main/java/se/leap/bitmaskclient/ProviderManager.java b/app/src/main/java/se/leap/bitmaskclient/ProviderManager.java index abbdeb66..cf703631 100644 --- a/app/src/main/java/se/leap/bitmaskclient/ProviderManager.java +++ b/app/src/main/java/se/leap/bitmaskclient/ProviderManager.java @@ -1,20 +1,31 @@ package se.leap.bitmaskclient; -import android.content.res.*; - -import com.pedrogomez.renderers.*; - -import org.json.*; - -import java.io.*; -import java.net.*; -import java.util.*; +import android.content.res.AssetManager; + +import com.pedrogomez.renderers.AdapteeCollection; + +import org.json.JSONException; +import org.json.JSONObject; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileWriter; +import java.io.IOException; +import java.io.InputStream; +import java.net.MalformedURLException; +import java.net.URL; +import java.util.Collection; +import java.util.HashSet; +import java.util.Iterator; +import java.util.Set; /** * Created by parmegv on 4/12/14. */ public class ProviderManager implements AdapteeCollection { + private static final String TAG = ProviderManager.class.getName(); private AssetManager assets_manager; private File external_files_dir; private Set default_providers; @@ -49,13 +60,13 @@ public class ProviderManager implements AdapteeCollection { Set providers = new HashSet(); try { for (String file : relative_file_paths) { + + String provider = file.substring(0, file.length() - ".url".length()); InputStream provider_file = assets_manager.open(directory + "/" + file); - String main_url = extractMainUrlFromInputStream(provider_file); - String certificate_pin = extractCertificatePinFromInputStream(provider_file); - if(certificate_pin.isEmpty()) - providers.add(new Provider(new URL(main_url))); - else - providers.add(new Provider(new URL(main_url), certificate_pin)); + String mainUrl = extractMainUrlFromInputStream(provider_file); + String certificate = ConfigHelper.loadInputStreamAsString(assets_manager.open(provider + ".pem")); + String providerDefinition = ConfigHelper.loadInputStreamAsString(assets_manager.open(provider + ".json")); + providers.add(new Provider(new URL(mainUrl), certificate, providerDefinition)); } } catch (IOException e) { e.printStackTrace(); @@ -89,21 +100,11 @@ public class ProviderManager implements AdapteeCollection { String main_url = ""; JSONObject file_contents = inputStreamToJson(input_stream); - if(file_contents != null) + if (file_contents != null) main_url = file_contents.optString(Provider.MAIN_URL); return main_url; } - private String extractCertificatePinFromInputStream(InputStream input_stream) { - String certificate_pin = ""; - - JSONObject file_contents = inputStreamToJson(input_stream); - if(file_contents != null) - certificate_pin = file_contents.optString(Provider.CA_CERT_FINGERPRINT); - - return certificate_pin; - } - private JSONObject inputStreamToJson(InputStream input_stream) { JSONObject json = null; try { -- cgit v1.2.3 From 81a732702f7b3125ac543f92d8a5ec33cce972fe Mon Sep 17 00:00:00 2001 From: cyBerta Date: Thu, 4 Jan 2018 13:23:58 +0100 Subject: 8773 preseeded providers implementation for insecure flavor --- .../se/leap/bitmaskclient/ProviderManager.java | 30 ++++++++++++++-------- 1 file changed, 19 insertions(+), 11 deletions(-) (limited to 'app/src/main/java/se/leap/bitmaskclient/ProviderManager.java') diff --git a/app/src/main/java/se/leap/bitmaskclient/ProviderManager.java b/app/src/main/java/se/leap/bitmaskclient/ProviderManager.java index cf703631..92d5da9f 100644 --- a/app/src/main/java/se/leap/bitmaskclient/ProviderManager.java +++ b/app/src/main/java/se/leap/bitmaskclient/ProviderManager.java @@ -58,19 +58,27 @@ public class ProviderManager implements AdapteeCollection { private Set providersFromAssets(String directory, String[] relative_file_paths) { Set providers = new HashSet(); - try { - for (String file : relative_file_paths) { - String provider = file.substring(0, file.length() - ".url".length()); - InputStream provider_file = assets_manager.open(directory + "/" + file); - String mainUrl = extractMainUrlFromInputStream(provider_file); - String certificate = ConfigHelper.loadInputStreamAsString(assets_manager.open(provider + ".pem")); - String providerDefinition = ConfigHelper.loadInputStreamAsString(assets_manager.open(provider + ".json")); - providers.add(new Provider(new URL(mainUrl), certificate, providerDefinition)); + for (String file : relative_file_paths) { + String mainUrl = null; + String certificate = null; + String providerDefinition = null; + try { + String provider = file.substring(0, file.length() - ".url".length()); + InputStream provider_file = assets_manager.open(directory + "/" + file); + mainUrl = extractMainUrlFromInputStream(provider_file); + certificate = ConfigHelper.loadInputStreamAsString(assets_manager.open(provider + ".pem")); + providerDefinition = ConfigHelper.loadInputStreamAsString(assets_manager.open(provider + ".json")); + } catch (IOException e) { + e.printStackTrace(); + } + try { + providers.add(new Provider(new URL(mainUrl), certificate, providerDefinition)); + } catch (MalformedURLException e) { + e.printStackTrace(); + } } - } catch (IOException e) { - e.printStackTrace(); - } + return providers; } -- cgit v1.2.3