introduced build-time paranoia mode that disables unencrypted chats and forces TOR
This commit is contained in:
		
							parent
							
								
									65b5504e68
								
							
						
					
					
						commit
						dc8967d8fc
					
				| 
						 | 
					@ -17,7 +17,7 @@ public final class Config {
 | 
				
			||||||
	public static final boolean DISALLOW_REGISTRATION_IN_UI = false; //hide the register checkbox
 | 
						public static final boolean DISALLOW_REGISTRATION_IN_UI = false; //hide the register checkbox
 | 
				
			||||||
	public static final boolean HIDE_PGP_IN_UI = false; //some more consumer focused clients might want to disable OpenPGP
 | 
						public static final boolean HIDE_PGP_IN_UI = false; //some more consumer focused clients might want to disable OpenPGP
 | 
				
			||||||
	public static final boolean PARANOID_MODE = false; //disables ability to send unencrypted 1-on-1 chats and forces TOR
 | 
						public static final boolean PARANOID_MODE = false; //disables ability to send unencrypted 1-on-1 chats and forces TOR
 | 
				
			||||||
	public static final boolean SHOW_CONNECTED_ACCOUNTS = true; //show number of connected accounts in foreground notification
 | 
						public static final boolean SHOW_CONNECTED_ACCOUNTS = false; //show number of connected accounts in foreground notification
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public static final boolean LEGACY_NAMESPACE_HTTP_UPLOAD = false;
 | 
						public static final boolean LEGACY_NAMESPACE_HTTP_UPLOAD = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -612,9 +612,16 @@ public class Conversation extends AbstractEntity implements Blockable {
 | 
				
			||||||
		if (next == -1) {
 | 
							if (next == -1) {
 | 
				
			||||||
			int outgoing = this.getMostRecentlyUsedOutgoingEncryption();
 | 
								int outgoing = this.getMostRecentlyUsedOutgoingEncryption();
 | 
				
			||||||
			if (outgoing == Message.ENCRYPTION_NONE) {
 | 
								if (outgoing == Message.ENCRYPTION_NONE) {
 | 
				
			||||||
				return this.getMostRecentlyUsedIncomingEncryption();
 | 
									next = this.getMostRecentlyUsedIncomingEncryption();
 | 
				
			||||||
			} else {
 | 
								} else {
 | 
				
			||||||
				return outgoing;
 | 
									next = outgoing;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							if (Config.PARANOID_MODE && mode == MODE_SINGLE && next <= 0) {
 | 
				
			||||||
 | 
								if (getAccount().getAxolotlService().isContactAxolotlCapable(getContact())) {
 | 
				
			||||||
 | 
									return Message.ENCRYPTION_AXOLOTL;
 | 
				
			||||||
 | 
								} else {
 | 
				
			||||||
 | 
									return Message.ENCRYPTION_OTR;
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		return next;
 | 
							return next;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -2550,7 +2550,7 @@ public class XmppConnectionService extends Service implements OnPhoneContactsLoa
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public boolean useTorToConnect() {
 | 
						public boolean useTorToConnect() {
 | 
				
			||||||
		return getPreferences().getBoolean("use_tor", false);
 | 
							return Config.PARANOID_MODE || getPreferences().getBoolean("use_tor", false);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	public int unreadCount() {
 | 
						public int unreadCount() {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -815,6 +815,7 @@ public class ConversationActivity extends XmppActivity
 | 
				
			||||||
			MenuItem pgp = popup.getMenu().findItem(R.id.encryption_choice_pgp);
 | 
								MenuItem pgp = popup.getMenu().findItem(R.id.encryption_choice_pgp);
 | 
				
			||||||
			MenuItem axolotl = popup.getMenu().findItem(R.id.encryption_choice_axolotl);
 | 
								MenuItem axolotl = popup.getMenu().findItem(R.id.encryption_choice_axolotl);
 | 
				
			||||||
			pgp.setVisible(!Config.HIDE_PGP_IN_UI);
 | 
								pgp.setVisible(!Config.HIDE_PGP_IN_UI);
 | 
				
			||||||
 | 
								none.setVisible(!Config.PARANOID_MODE);
 | 
				
			||||||
			if (conversation.getMode() == Conversation.MODE_MULTI) {
 | 
								if (conversation.getMode() == Conversation.MODE_MULTI) {
 | 
				
			||||||
				otr.setVisible(false);
 | 
									otr.setVisible(false);
 | 
				
			||||||
				axolotl.setVisible(false);
 | 
									axolotl.setVisible(false);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,7 +9,10 @@ import android.os.Build;
 | 
				
			||||||
import android.os.Bundle;
 | 
					import android.os.Bundle;
 | 
				
			||||||
import android.preference.ListPreference;
 | 
					import android.preference.ListPreference;
 | 
				
			||||||
import android.preference.Preference;
 | 
					import android.preference.Preference;
 | 
				
			||||||
 | 
					import android.preference.PreferenceCategory;
 | 
				
			||||||
import android.preference.PreferenceManager;
 | 
					import android.preference.PreferenceManager;
 | 
				
			||||||
 | 
					import android.preference.PreferenceScreen;
 | 
				
			||||||
 | 
					import android.util.Log;
 | 
				
			||||||
import android.widget.Toast;
 | 
					import android.widget.Toast;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.security.KeyStoreException;
 | 
					import java.security.KeyStoreException;
 | 
				
			||||||
| 
						 | 
					@ -19,6 +22,7 @@ import java.util.Collections;
 | 
				
			||||||
import java.util.Locale;
 | 
					import java.util.Locale;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import de.duenndns.ssl.MemorizingTrustManager;
 | 
					import de.duenndns.ssl.MemorizingTrustManager;
 | 
				
			||||||
 | 
					import eu.siacs.conversations.Config;
 | 
				
			||||||
import eu.siacs.conversations.R;
 | 
					import eu.siacs.conversations.R;
 | 
				
			||||||
import eu.siacs.conversations.entities.Account;
 | 
					import eu.siacs.conversations.entities.Account;
 | 
				
			||||||
import eu.siacs.conversations.xmpp.XmppConnection;
 | 
					import eu.siacs.conversations.xmpp.XmppConnection;
 | 
				
			||||||
| 
						 | 
					@ -57,6 +61,14 @@ public class SettingsActivity extends XmppActivity implements
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							if (Config.PARANOID_MODE) {
 | 
				
			||||||
 | 
								PreferenceCategory connectionOptions = (PreferenceCategory) mSettingsFragment.findPreference("connection_options");
 | 
				
			||||||
 | 
								PreferenceScreen expert = (PreferenceScreen) mSettingsFragment.findPreference("expert");
 | 
				
			||||||
 | 
								if (connectionOptions != null) {
 | 
				
			||||||
 | 
									expert.removePreference(connectionOptions);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		final Preference removeCertsPreference = mSettingsFragment.findPreference("remove_trusted_certificates");
 | 
							final Preference removeCertsPreference = mSettingsFragment.findPreference("remove_trusted_certificates");
 | 
				
			||||||
		removeCertsPreference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
 | 
							removeCertsPreference.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() {
 | 
				
			||||||
			@Override
 | 
								@Override
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -147,7 +147,9 @@
 | 
				
			||||||
                    android:summary="@string/pref_remove_trusted_certificates_summary"
 | 
					                    android:summary="@string/pref_remove_trusted_certificates_summary"
 | 
				
			||||||
                    android:title="@string/pref_remove_trusted_certificates_title"/>
 | 
					                    android:title="@string/pref_remove_trusted_certificates_title"/>
 | 
				
			||||||
            </PreferenceCategory>
 | 
					            </PreferenceCategory>
 | 
				
			||||||
            <PreferenceCategory android:title="@string/pref_connection_options">
 | 
					            <PreferenceCategory
 | 
				
			||||||
 | 
					                android:title="@string/pref_connection_options"
 | 
				
			||||||
 | 
					                android:key="connection_options">
 | 
				
			||||||
                <CheckBoxPreference
 | 
					                <CheckBoxPreference
 | 
				
			||||||
                    android:defaultValue="false"
 | 
					                    android:defaultValue="false"
 | 
				
			||||||
                    android:key="use_tor"
 | 
					                    android:key="use_tor"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue