diff --git a/gradle/variables.gradle b/gradle/variables.gradle index 108fa0e7e4a2cb3019f3b382926982fd1f32cc30..a91f5b7c05552ffbbbb034df253cd2856dc49a63 100644 --- a/gradle/variables.gradle +++ b/gradle/variables.gradle @@ -4,9 +4,9 @@ ext { nav_version = '2.5.3' tor_version = '0.4.8.9-1' obfs4_version = '0.0.14-tor2' - snowflake_version = '2.5.1' + snowflake_version = '2.9.1' junit_version = '5.7.2' mockk_version = '1.10.4' ktlint_plugin_version = '10.2.1' - onionwrapper_version = '0.0.7' + onionwrapper_version = '0.1.0' } diff --git a/gradle/verification-metadata.xml b/gradle/verification-metadata.xml index 944ff03efa98486fcef1f720b6a7e7fcb77daff4..d137a1b61e2f33dcaa23d85d92c143a3488a0b61 100644 --- a/gradle/verification-metadata.xml +++ b/gradle/verification-metadata.xml @@ -3133,44 +3133,44 @@ <sha256 value="9feb0d95ecef6e394b2a55ec4e451ec659f84a705345976053de166b157a0460" origin="Generated by Gradle"/> </artifact> </component> - <component group="org.briarproject" name="onionwrapper-android" version="0.0.7"> - <artifact name="onionwrapper-android-0.0.7.aar"> + <component group="org.briarproject" name="onionwrapper-android" version="0.1.0"> + <artifact name="onionwrapper-android-0.1.0.aar"> <sha256 value="d761854dac454616b3e0ca099b2cd17060365ce4316afe495cc7ae86b6c81d15" origin="Generated by Gradle"/> </artifact> - <artifact name="onionwrapper-android-0.0.7.module"> - <sha256 value="36ce596cb48dfdb83b1e4a09e4a5c574ed965821c586d0b91a3ebfc341ee236b" origin="Generated by Gradle"/> + <artifact name="onionwrapper-android-0.1.0.module"> + <sha256 value="163912a34b00afc316328a2559355e3cdf965a2bd2db8e75e03a82b3bf86f527" origin="Generated by Gradle"/> </artifact> </component> - <component group="org.briarproject" name="onionwrapper-core" version="0.0.7"> - <artifact name="onionwrapper-core-0.0.7.jar"> - <sha256 value="918b5851f4a05a3bc0835bc7c81d70e598a178c79856fe5c506c261889f4b3fd" origin="Generated by Gradle"/> + <component group="org.briarproject" name="onionwrapper-core" version="0.1.0"> + <artifact name="onionwrapper-core-0.1.0.jar"> + <sha256 value="3e6631771b891c959403f6145de034c6f9816e7d067808d534f954eef9a1ca35" origin="Generated by Gradle"/> </artifact> - <artifact name="onionwrapper-core-0.0.7.module"> - <sha256 value="75ebcd6f55d305a1e45184940b7f48332cdcaafc815a1564b1833993488ea4a5" origin="Generated by Gradle"/> + <artifact name="onionwrapper-core-0.1.0.module"> + <sha256 value="8ccad59794d11502dfd48024cb03ed03f144ab0e7e94b2a9557e34f3e0c7f806" origin="Generated by Gradle"/> </artifact> </component> - <component group="org.briarproject" name="onionwrapper-java" version="0.0.7"> - <artifact name="onionwrapper-java-0.0.7.jar"> - <sha256 value="48115772d4348eab6f35e562ae648dd9d7398adb99e5429afb64a62c82f3d27c" origin="Generated by Gradle"/> + <component group="org.briarproject" name="onionwrapper-java" version="0.1.0"> + <artifact name="onionwrapper-java-0.1.0.jar"> + <sha256 value="c1a961c73f06d28e2a63c301d4e747398745bfc9709ade4ae3ba8818c6849fe0" origin="Generated by Gradle"/> </artifact> - <artifact name="onionwrapper-java-0.0.7.module"> - <sha256 value="1760f9256afbb4ed3603484ce27a77be6912f45819768e95b18845bbf93648a3" origin="Generated by Gradle"/> + <artifact name="onionwrapper-java-0.1.0.module"> + <sha256 value="cabcf088c78de7fca7a71c6242b47d7e72fd7fbcbcaa02c1f6fcf24dcbfd23fe" origin="Generated by Gradle"/> </artifact> </component> - <component group="org.briarproject" name="snowflake-android" version="2.5.1"> - <artifact name="snowflake-android-2.5.1.jar"> - <sha256 value="88ec81c17b1b6fa884d06839dec0330e328b45c89f88c970a213ce91ca8eac87" origin="Generated by Gradle"/> + <component group="org.briarproject" name="snowflake-android" version="2.9.1"> + <artifact name="snowflake-android-2.9.1.jar"> + <sha256 value="8d6195637edbe3717d205c2e524e9d3cb742b90fc67b10565d16262af134e489" origin="Generated by Gradle"/> </artifact> - <artifact name="snowflake-android-2.5.1.pom"> - <sha256 value="982c1b2e81d7f8e8e82013a3b5de3501cb24cece1411a5cd834965d5b40634b3" origin="Generated by Gradle"/> + <artifact name="snowflake-android-2.9.1.pom"> + <sha256 value="550526c404e9a9105e9eae55490eac874b07febce4e64b1053cf357144f7c204" origin="Generated by Gradle"/> </artifact> </component> - <component group="org.briarproject" name="snowflake-linux" version="2.5.1"> - <artifact name="snowflake-linux-2.5.1.jar"> - <sha256 value="edc807dcb7758365970d95525e4749349a27f462d0e2df6505ad1ca65fb296d2" origin="Generated by Gradle"/> + <component group="org.briarproject" name="snowflake-linux" version="2.9.1"> + <artifact name="snowflake-linux-2.9.1.jar"> + <sha256 value="36b2f406f67a1bf3b4a6cecbba2e153ad939209cc9c22299e4161019dbae0e03" origin="Generated by Gradle"/> </artifact> - <artifact name="snowflake-linux-2.5.1.pom"> - <sha256 value="5603bc6b5e8787e478ae8b1cb0a0b66f838503fafa1698bb3b6bd3c503db4d95" origin="Generated by Gradle"/> + <artifact name="snowflake-linux-2.9.1.pom"> + <sha256 value="9aa9b67b311ab926884a1394a095fd95b9d1ca4bb2549aa7c334da76d7dfc49e" origin="Generated by Gradle"/> </artifact> </component> <component group="org.briarproject" name="tor-android" version="0.4.8.9-1"> diff --git a/mailbox-android/src/main/java/org/briarproject/mailbox/android/ui/settings/SettingsFragment.kt b/mailbox-android/src/main/java/org/briarproject/mailbox/android/ui/settings/SettingsFragment.kt index 9909cb82ff1d7a2f62dc33bf26a9ad4f9cd8655d..8f416e850cda507659d571431e745787c9de5486 100644 --- a/mailbox-android/src/main/java/org/briarproject/mailbox/android/ui/settings/SettingsFragment.kt +++ b/mailbox-android/src/main/java/org/briarproject/mailbox/android/ui/settings/SettingsFragment.kt @@ -14,7 +14,6 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import org.briarproject.mailbox.R import org.briarproject.mailbox.android.ui.MailboxViewModel -import org.briarproject.mailbox.core.settings.SettingsManager import org.briarproject.mailbox.core.tor.NetworkManager import org.briarproject.mailbox.core.tor.TorConstants.BRIDGE_AUTO import org.briarproject.mailbox.core.tor.TorConstants.BRIDGE_AUTO_DEFAULT @@ -49,9 +48,6 @@ class SettingsFragment : PreferenceFragmentCompat() { private lateinit var brideTypePrefs: List<SwitchPreferenceCompat> private lateinit var bridgeTypesCategory: PreferenceCategory - @Inject - lateinit var settingsManager: SettingsManager - @Inject lateinit var torSettingsStore: TorSettingsStore @@ -122,12 +118,12 @@ class SettingsFragment : PreferenceFragmentCompat() { private fun onAutoChanged(auto: Boolean) { autoPref.isChecked = auto val country = locationUtils.currentCountry - val doBridgesWork = circumventionProvider.doBridgesWork(country) + val useBridgesByDefault = circumventionProvider.shouldUseBridges(country) // if automatic mode is on, we show what Tor is using, otherwise we show what user has set if (auto) { setIsPersistent(false) - usePref.isChecked = doBridgesWork - onUseBridgesChanged(doBridgesWork) + usePref.isChecked = useBridgesByDefault + onUseBridgesChanged(useBridgesByDefault) val autoTypes = if (networkManager.networkStatus.isIpv6Only) { listOf(MEEK, SNOWFLAKE) } else { @@ -141,7 +137,7 @@ class SettingsFragment : PreferenceFragmentCompat() { } else { setIsPersistent(true) val useBridges = - torSettingsStore.getBooleanAndStoreDefault(usePref, BRIDGE_USE, doBridgesWork) + torSettingsStore.getBooleanAndStoreDefault(usePref, BRIDGE_USE, useBridgesByDefault) onUseBridgesChanged(useBridges) val customTypes = torPlugin.customBridgeTypes torSettingsStore.getBooleanAndStoreDefault( diff --git a/mailbox-android/src/main/java/org/briarproject/mailbox/core/tor/AndroidTorPlugin.java b/mailbox-android/src/main/java/org/briarproject/mailbox/core/tor/AndroidTorPlugin.java index 6da3f8e7e9b90336a5aaccd00aa25b1614a90e27..26f4903ff73644f8ab79b898fc9bab73812b3cd6 100644 --- a/mailbox-android/src/main/java/org/briarproject/mailbox/core/tor/AndroidTorPlugin.java +++ b/mailbox-android/src/main/java/org/briarproject/mailbox/core/tor/AndroidTorPlugin.java @@ -54,7 +54,7 @@ public class AndroidTorPlugin extends AbstractTorPlugin { File torDirectory, IntSupplier portSupplier) { super(ioExecutor, settingsManager, networkManager, locationUtils, - circumventionProvider, portSupplier, SDK_INT >= 25, + circumventionProvider, portSupplier, new AndroidTorWrapper(app, wakeLockManager, ioExecutor, eventExecutor, architecture, torDirectory, SOCKS_PORT, CONTROL_PORT)); diff --git a/mailbox-core/src/main/java/org/briarproject/mailbox/core/tor/AbstractTorPlugin.java b/mailbox-core/src/main/java/org/briarproject/mailbox/core/tor/AbstractTorPlugin.java index 3a39b7febbaf05e6b76051fe9ed9dfb83a59aa18..cd3c436a7694eae44284966490263319e778c097 100644 --- a/mailbox-core/src/main/java/org/briarproject/mailbox/core/tor/AbstractTorPlugin.java +++ b/mailbox-core/src/main/java/org/briarproject/mailbox/core/tor/AbstractTorPlugin.java @@ -95,7 +95,6 @@ public abstract class AbstractTorPlugin implements TorPlugin, EventListener { private final LocationUtils locationUtils; private final CircumventionProvider circumventionProvider; private final IntSupplier portSupplier; - private final boolean canVerifyLetsEncryptCerts; private final TorWrapper tor; private final AtomicBoolean used = new AtomicBoolean(false); @@ -109,7 +108,6 @@ public abstract class AbstractTorPlugin implements TorPlugin, EventListener { LocationUtils locationUtils, CircumventionProvider circumventionProvider, IntSupplier portSupplier, - boolean canVerifyLetsEncryptCerts, TorWrapper tor) { this.ioExecutor = ioExecutor; this.settingsManager = settingsManager; @@ -117,7 +115,6 @@ public abstract class AbstractTorPlugin implements TorPlugin, EventListener { this.locationUtils = locationUtils; this.circumventionProvider = circumventionProvider; this.portSupplier = portSupplier; - this.canVerifyLetsEncryptCerts = canVerifyLetsEncryptCerts; this.tor = tor; // Don't execute more than one connection status check at a time connectionStatusExecutor = @@ -232,7 +229,7 @@ public abstract class AbstractTorPlugin implements TorPlugin, EventListener { List<String> bridges = new ArrayList<>(); for (BridgeType bridgeType : bridgeTypes) { bridges.addAll(circumventionProvider.getBridges(bridgeType, - countryCode, canVerifyLetsEncryptCerts)); + countryCode)); } tor.enableBridges(bridges); } @@ -357,7 +354,7 @@ public abstract class AbstractTorPlugin implements TorPlugin, EventListener { private List<BridgeType> getBridgeTypes(String country, boolean ipv6Only) { List<BridgeType> bridgeTypes = emptyList(); boolean bridgesNeeded = - circumventionProvider.doBridgesWork(country); + circumventionProvider.shouldUseBridges(country); boolean bridgeAuto = settings.getBoolean(BRIDGE_AUTO, BRIDGE_AUTO_DEFAULT); if (bridgeAuto) { diff --git a/mailbox-lib/src/main/java/org/briarproject/mailbox/core/tor/JavaTorPlugin.java b/mailbox-lib/src/main/java/org/briarproject/mailbox/core/tor/JavaTorPlugin.java index e3ac9442c417773c6c296454d9c97fd87f4a9398..72b3096102e667af296546bce7d0c08bd628be49 100644 --- a/mailbox-lib/src/main/java/org/briarproject/mailbox/core/tor/JavaTorPlugin.java +++ b/mailbox-lib/src/main/java/org/briarproject/mailbox/core/tor/JavaTorPlugin.java @@ -43,7 +43,7 @@ public class JavaTorPlugin extends AbstractTorPlugin { File torDirectory, IntSupplier portSupplier) { super(ioExecutor, settingsManager, networkManager, locationUtils, - circumventionProvider, portSupplier, true, + circumventionProvider, portSupplier, new UnixTorWrapper(ioExecutor, eventExecutor, architecture, torDirectory, SOCKS_PORT, CONTROL_PORT)); }