parent
777aeea138
commit
541718fd11
Binary file not shown.
@ -0,0 +1,50 @@
|
|||||||
|
package org.thoughtcrime.securesms.push;
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
import android.support.annotation.NonNull;
|
||||||
|
|
||||||
|
import org.thoughtcrime.securesms.BuildConfig;
|
||||||
|
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||||
|
import org.whispersystems.signalservice.api.SignalServiceAccountManager;
|
||||||
|
import org.whispersystems.signalservice.api.push.TrustStore;
|
||||||
|
import org.whispersystems.signalservice.internal.push.SignalServiceUrl;
|
||||||
|
|
||||||
|
public class AccountManagerFactory {
|
||||||
|
|
||||||
|
public static SignalServiceAccountManager createManager(Context context) {
|
||||||
|
return new SignalServiceAccountManager(getUrl(context), getTrustStore(context),
|
||||||
|
TextSecurePreferences.getLocalNumber(context),
|
||||||
|
TextSecurePreferences.getPushServerPassword(context),
|
||||||
|
BuildConfig.USER_AGENT);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static SignalServiceAccountManager createManager(Context context, String number, String password) {
|
||||||
|
return new SignalServiceAccountManager(getUrl(number), getTrustStore(context, number),
|
||||||
|
number, password, BuildConfig.USER_AGENT);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static SignalServiceUrl getUrl(@NonNull Context context) {
|
||||||
|
return getUrl(TextSecurePreferences.getLocalNumber(context));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static TrustStore getTrustStore(@NonNull Context context) {
|
||||||
|
return getTrustStore(context, TextSecurePreferences.getLocalNumber(context));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static SignalServiceUrl getUrl(@NonNull String number) {
|
||||||
|
if (Censorship.isCensored(number)) {
|
||||||
|
return new SignalServiceUrl(BuildConfig.UNCENSORED_FRONTING_HOST, BuildConfig.CENSORED_REFLECTOR);
|
||||||
|
} else {
|
||||||
|
return new SignalServiceUrl(BuildConfig.TEXTSECURE_URL, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static TrustStore getTrustStore(@NonNull Context context, @NonNull String number) {
|
||||||
|
if (Censorship.isCensored(number)) {
|
||||||
|
return new CensorshipFrontingTrustStore(context);
|
||||||
|
} else {
|
||||||
|
return new SignalServiceTrustStore(context);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
package org.thoughtcrime.securesms.push;
|
||||||
|
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
|
||||||
|
import org.thoughtcrime.securesms.BuildConfig;
|
||||||
|
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
||||||
|
|
||||||
|
public class Censorship {
|
||||||
|
|
||||||
|
public static boolean isCensored(Context context) {
|
||||||
|
String localNumber = TextSecurePreferences.getLocalNumber(context);
|
||||||
|
return isCensored(localNumber);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isCensored(String localNumber) {
|
||||||
|
for (String censoredRegion : BuildConfig.CENSORED_COUNTRIES) {
|
||||||
|
if (localNumber.startsWith(censoredRegion)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,29 @@
|
|||||||
|
package org.thoughtcrime.securesms.push;
|
||||||
|
|
||||||
|
|
||||||
|
import android.content.Context;
|
||||||
|
|
||||||
|
import org.thoughtcrime.securesms.R;
|
||||||
|
import org.whispersystems.signalservice.api.push.TrustStore;
|
||||||
|
|
||||||
|
import java.io.InputStream;
|
||||||
|
|
||||||
|
public class CensorshipFrontingTrustStore implements TrustStore {
|
||||||
|
|
||||||
|
private final Context context;
|
||||||
|
|
||||||
|
public CensorshipFrontingTrustStore(Context context) {
|
||||||
|
this.context = context.getApplicationContext();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public InputStream getKeyStoreInputStream() {
|
||||||
|
return context.getResources().openRawResource(R.raw.censorship_fronting);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getKeyStorePassword() {
|
||||||
|
return "whisper";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -1,24 +0,0 @@
|
|||||||
package org.thoughtcrime.securesms.push;
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
|
|
||||||
import org.thoughtcrime.securesms.BuildConfig;
|
|
||||||
import org.thoughtcrime.securesms.util.TextSecurePreferences;
|
|
||||||
import org.whispersystems.signalservice.api.SignalServiceAccountManager;
|
|
||||||
|
|
||||||
public class TextSecureCommunicationFactory {
|
|
||||||
|
|
||||||
public static SignalServiceAccountManager createManager(Context context) {
|
|
||||||
return new SignalServiceAccountManager(BuildConfig.TEXTSECURE_URL,
|
|
||||||
new TextSecurePushTrustStore(context),
|
|
||||||
TextSecurePreferences.getLocalNumber(context),
|
|
||||||
TextSecurePreferences.getPushServerPassword(context),
|
|
||||||
BuildConfig.USER_AGENT);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static SignalServiceAccountManager createManager(Context context, String number, String password) {
|
|
||||||
return new SignalServiceAccountManager(BuildConfig.TEXTSECURE_URL, new TextSecurePushTrustStore(context),
|
|
||||||
number, password, BuildConfig.USER_AGENT);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
Loading…
Reference in New Issue