summaryrefslogtreecommitdiff
path: root/app/src/main/java/se/leap/bitmaskclient/ProviderApiManagerBase.java
diff options
context:
space:
mode:
authorFup Duck <fupduck@sacknagel.com>2018-02-11 13:25:24 +0100
committerFup Duck <fupduck@sacknagel.com>2018-02-11 13:28:43 +0100
commitca82cdf77ee4d30b820a1f936315c6c5be78359d (patch)
tree90f031e4b2603a8254d178317942e808adba6099 /app/src/main/java/se/leap/bitmaskclient/ProviderApiManagerBase.java
parentdf4bf064a8c9310ed887d80bf6cd6328d1363f49 (diff)
8827 - discussion
* validate urls before changing anything in Provider.define() * save private key and vpn cert after login/signup
Diffstat (limited to 'app/src/main/java/se/leap/bitmaskclient/ProviderApiManagerBase.java')
-rw-r--r--app/src/main/java/se/leap/bitmaskclient/ProviderApiManagerBase.java29
1 files changed, 24 insertions, 5 deletions
diff --git a/app/src/main/java/se/leap/bitmaskclient/ProviderApiManagerBase.java b/app/src/main/java/se/leap/bitmaskclient/ProviderApiManagerBase.java
index a9321a9c..5fe6ed05 100644
--- a/app/src/main/java/se/leap/bitmaskclient/ProviderApiManagerBase.java
+++ b/app/src/main/java/se/leap/bitmaskclient/ProviderApiManagerBase.java
@@ -87,7 +87,6 @@ import static se.leap.bitmaskclient.ProviderAPI.SIGN_UP;
import static se.leap.bitmaskclient.ProviderAPI.SUCCESSFUL_LOGIN;
import static se.leap.bitmaskclient.ProviderAPI.SUCCESSFUL_LOGOUT;
import static se.leap.bitmaskclient.ProviderAPI.SUCCESSFUL_SIGNUP;
-import static se.leap.bitmaskclient.ProviderAPI.UPDATE_PROGRESSBAR;
import static se.leap.bitmaskclient.ProviderAPI.UPDATE_PROVIDER_DETAILS;
import static se.leap.bitmaskclient.R.string.certificate_error;
import static se.leap.bitmaskclient.R.string.error_io_exception_user_message;
@@ -665,6 +664,8 @@ public abstract class ProviderApiManagerBase {
provider.setCaCert(getPersistedProviderCA(providerDomain));
provider.define(getPersistedProviderDefinition(providerDomain));
provider.setCaCertFingerprint(getPersistedCaCertFingerprint(providerDomain));
+ provider.setPrivateKey(getPersistedPrivateKey(providerDomain));
+ provider.setVpnCertificate(getPersistedVPNCertificate(providerDomain));
}
}
@@ -707,10 +708,6 @@ public abstract class ProviderApiManagerBase {
return setErrorResult(result, warning_corrupted_provider_cert, ERROR_CERTIFICATE_PINNING.toString());
}
- if (!hasApiUrlExpectedDomain(providerDefinition, mainUrl)){
- return setErrorResult(result, warning_corrupted_provider_details, ERROR_CORRUPTED_PROVIDER_JSON.toString());
- }
-
if (!canConnect(caCert, providerDefinition, result)) {
return result;
}
@@ -797,6 +794,24 @@ public abstract class ProviderApiManagerBase {
return "";
}
+ protected String getPersistedPrivateKey(String providerDomain) {
+ try {
+ return getPersistedProviderDefinition(providerDomain).getString(PROVIDER_PRIVATE_KEY);
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ return "";
+ }
+
+ protected String getPersistedVPNCertificate(String providerDomain) {
+ try {
+ return getPersistedProviderDefinition(providerDomain).getString(PROVIDER_VPN_CERTIFICATE);
+ } catch (JSONException e) {
+ e.printStackTrace();
+ }
+ return "";
+ }
+
protected JSONObject getPersistedProviderDefinition(String providerDomain) {
try {
return new JSONObject(preferences.getString(Provider.KEY + "." + providerDomain, ""));
@@ -806,6 +821,10 @@ public abstract class ProviderApiManagerBase {
}
}
+ protected String getFromPersistedProvider(String toFetch, String providerDomain) {
+ return preferences.getString(toFetch + "." + providerDomain, "");
+ }
+
protected String getPersistedProviderCA(String providerDomain) {
return preferences.getString(Provider.CA_CERT + "." + providerDomain, "");
}