diff --git a/app-mini/src/main/res/values/strings.xml b/app-mini/src/main/res/values/strings.xml
index 810ced96c..78723c10e 100644
--- a/app-mini/src/main/res/values/strings.xml
+++ b/app-mini/src/main/res/values/strings.xml
@@ -233,6 +233,10 @@
Always enables connection padding to defend against some forms of traffic analysis. Default: auto
Reduced connection padding
Closes relay connections sooner and sends less padding packets to reduce data and battery usage
+ Circuit padding
+ Enable circuit padding to defend against some forms of traffic analysis
+ Reduced circuit padding
+ Use lower overhead padding algorithms to reduce data and battery usage
Prefer IPv6 connections
Tells exits that IPv6 addresses are preferred
Disable IPv4 connections
diff --git a/app-mini/src/main/res/xml/preferences.xml b/app-mini/src/main/res/xml/preferences.xml
index bda86acc2..49be87a0f 100644
--- a/app-mini/src/main/res/xml/preferences.xml
+++ b/app-mini/src/main/res/xml/preferences.xml
@@ -198,7 +198,7 @@
android:title="@string/pref_disable_ipv4" />
-
+
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 4400c048b..bff412a2a 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -233,6 +233,10 @@
Always enables connection padding to defend against some forms of traffic analysis. Default: auto
Reduced connection padding
Closes relay connections sooner and sends less padding packets to reduce data and battery usage
+ Circuit padding
+ Enable circuit padding to defend against some forms of traffic analysis
+ Reduced circuit padding
+ Use lower overhead padding algorithms to reduce data and battery usage
Prefer IPv6 connections
Tells exits that IPv6 addresses are preferred
Disable IPv4 connections
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index 49b90dfa0..8477efbdf 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -195,7 +195,7 @@
android:title="@string/pref_disable_ipv4" />
-
+
+
+
diff --git a/orbotservice/src/main/java/org/torproject/android/service/OrbotConstants.java b/orbotservice/src/main/java/org/torproject/android/service/OrbotConstants.java
index a5dec36e9..8416f15e5 100644
--- a/orbotservice/src/main/java/org/torproject/android/service/OrbotConstants.java
+++ b/orbotservice/src/main/java/org/torproject/android/service/OrbotConstants.java
@@ -25,6 +25,8 @@ public interface OrbotConstants {
String PREF_CONNECTION_PADDING = "pref_connection_padding";
String PREF_REDUCED_CONNECTION_PADDING = "pref_reduced_connection_padding";
+ String PREF_CIRCUIT_PADDING = "pref_circuit_padding";
+ String PREF_REDUCED_CIRCUIT_PADDING = "pref_reduced_circuit_padding";
String PREF_PREFER_IPV6 = "pref_prefer_ipv6";
String PREF_DISABLE_IPV4 = "pref_disable_ipv4";
diff --git a/orbotservice/src/main/java/org/torproject/android/service/TorService.java b/orbotservice/src/main/java/org/torproject/android/service/TorService.java
index 96dedfd82..52e672485 100644
--- a/orbotservice/src/main/java/org/torproject/android/service/TorService.java
+++ b/orbotservice/src/main/java/org/torproject/android/service/TorService.java
@@ -700,6 +700,18 @@ private File updateTorrcCustomFile () throws IOException, TimeoutException
extraLines.append("ReducedConnectionPadding 1").append('\n');
}
+ if(prefs.getBoolean(OrbotConstants.PREF_CIRCUIT_PADDING, true))
+ {
+ extraLines.append("CircuitPadding 1").append('\n');
+ } else {
+ extraLines.append("CircuitPadding 0").append('\n');
+ }
+
+ if(prefs.getBoolean(OrbotConstants.PREF_REDUCED_CIRCUIT_PADDING, true))
+ {
+ extraLines.append("ReducedCircuitPadding 1").append('\n');
+ }
+
String transPort = prefs.getString("pref_transport", TorServiceConstants.TOR_TRANSPROXY_PORT_DEFAULT+"");
String dnsPort = prefs.getString("pref_dnsport", TorServiceConstants.TOR_DNS_PORT_DEFAULT+"");