Commit Graph

434 Commits

Author SHA1 Message Date
Abraham Kiggundu
851151041e Pull-Merge of latest changes from main repo 2015-01-08 11:54:47 +03:00
Abraham Kiggundu
2b9c469063 Merge branch 'improve-thread-encapsulation' into upstream 2015-01-06 07:15:11 +03:00
akwizgran
d3bf2d59a1 Use the same maximum frame length for all transports. 2015-01-05 16:24:44 +00:00
akwizgran
358166bc12 Don't try to erase secrets from memory.
1. The things we're really trying to protect - contact identities,
message contents, etc - can't be erased from memory because they're
encapsulated inside objects we don't control.

2. Long-term secrets can't be protected by erasing them from memory
because they're stored in the database and the database key has to be
held in memory whenever the app's running.

3. If the runtime uses a compacting garbage collector then we have no
way to ensure an object is erased from memory.

4. Trying to erase secrets from memory makes the code more complex.

Conclusion: Let's not try to protect secrets from an attacker who can
read arbitrary memory locations.
2014-12-29 21:08:27 +00:00
Abraham Kiggundu
9a2e93ebb9 cleanup 2014-12-26 17:35:37 +03:00
Abraham Kiggundu
b074978472 Improved encapsulation of thread synchronisation as follows
- replaced use of Object instance mutex with a private final Lock object
- replaced Object signaling with specific condition signalling
2014-12-26 16:40:46 +03:00
Abraham Kiggundu
276dcb1038 undo unnecessary changes to .project file and ignore eclipse metadata 2014-12-22 21:11:16 +03:00
akwizgran
02a485ace0 Improved description of Bluetooth setting. Bug #73. 2014-12-17 08:34:44 +00:00
akwizgran
388b36b6be Check periodically for retransmittable packets. Bug #46. 2014-12-14 20:26:41 +00:00
akwizgran
29a6596ee3 Use the transport's idle timeout, not a hardcoded value. 2014-12-14 15:18:39 +00:00
akwizgran
d4fa656dbb Application layer keepalives to detect dead TCP connections.
DuplexOutgoingSession flushes its output stream if it's idle for a
transport-defined interval, causing an empty frame to be sent. The TCP
and Tor plugins use a socket timeout equal to twice the idle interval to
detect dead connections.

See bugs #27, #46 and #60.
2014-12-13 12:00:40 +00:00
Abraham Kiggundu
7af25fc74d Revert "Abe#1 fixed link to generated folder"
This reverts commit bb3ec5a2d6.
2014-12-06 21:27:20 +00:00
Abraham Kiggundu
bb3ec5a2d6 Abe#1 fixed link to generated folder 2014-12-06 20:55:57 +00:00
akwizgran
3a70aa7653 Removed unused code from AndroidLocationUtils.
It's in the git history if we ever decide to use it.
2014-12-05 19:23:47 +00:00
akwizgran
6cc864db2c Bumped expiry date to 1 January 2015. 2014-12-05 13:32:59 +00:00
akwizgran
f0f5daf607 Updated Bouncy Castle source code. 2014-12-05 13:32:59 +00:00
Abraham Kiggundu
5b7938ac4d fixed missing linked folder resource 2014-12-05 12:23:51 +00:00
akwizgran
0d12e39107 Bumped expiry date to 1 January 2015. 2014-12-05 10:28:51 +00:00
akwizgran
0b9671a0fa Updated Bouncy Castle source code. 2014-12-04 12:06:41 +00:00
akwizgran
6b4a72aea7 Added Gradle build files because Ant's too efficient for some people. 2014-11-25 14:54:34 +00:00
akwizgran
cc8f960902 Renamed values-v11 to values-v14 as it depends on API level 14. 2014-11-25 07:44:54 +00:00
akwizgran
bb4bd1d553 Removed unused strings. 2014-11-25 07:44:24 +00:00
akwizgran
9eee6c1adc Updated Tor patch and recompiled Tor with patch applied. 2014-11-24 22:13:16 +00:00
akwizgran
33c7f44ba4 Upgraded Tor to 0.2.5.10 with OpenSSL 1.0.1j. 2014-11-13 11:30:29 +00:00
akwizgran
1bbdbc54c7 Set max SDK version to 20.
Android L requires executables to be compiled with PIE support, so we'll
have to ship two Tor binaries.
2014-11-12 14:41:52 +00:00
akwizgran
8046ff3793 Merge branch 'master' of git@code.briarproject.org:akwizgran/briar.git 2014-11-11 21:11:52 +00:00
akwizgran
5fec373689 Bumped expiry date to 14 November 2014. 2014-11-09 09:46:07 +00:00
akwizgran
f0c08879d8 Removed obsolete modules from Roboguice manifest. 2014-11-09 09:41:46 +00:00
akwizgran
4ca83842d1 Moved ConnectionDispatcher and ConnectionRegistry to plugins package. 2014-11-05 19:40:07 +00:00
akwizgran
1151c35d1c Bumped expiry date to 7 November 2014. 2014-11-04 16:53:13 +00:00
akwizgran
7b8181e309 Massive refactoring to merge handling of simplex and duplex connections. 2014-11-04 16:51:25 +00:00
akwizgran
f4a647f14a Update description of Bluetooth setting when setting is toggled. Bug #75. 2014-10-29 12:44:00 +00:00
akwizgran
b24f153704 Renamed a load of things from 'connection' to 'stream'. 2014-10-08 16:21:55 +01:00
akwizgran
f3d2e52e11 Fixed classpath for launching the app from Eclipse. 2014-10-07 12:19:06 +01:00
akwizgran
58a2b725bf Bumped expiry date to 31 October 2014 and build target to android-20.
This should make it easier for people to build the project with a freshly
downloaded ADT Bundle.
2014-10-07 11:44:39 +01:00
akwizgran
9e5e2e2df2 Patched tor and jtorctl for improved hidden service performance.
Two changes have been made to Tor:

1. Set can_complete_circuit to false when the network is disabled, and
don't try to build introduction circuits while can_complete_circuit is
false. This avoids a situation where Tor tries to build introduction
circuits as soon as the network is re-enabled, all the circuits fail,
and then Tor waits 5 minutes before trying to build more.

2. Added a FORGETHS command to the control protocol which clears any
cached client state relating to a specified hidden service. This can be
used to flush state that's likely to be stale before trying to connect
to a hidden service with an unstable network connection.

Support for the FORGETHS command was also added to jtorctl.
2014-10-06 18:57:57 +01:00
akwizgran
3051d8811e Upgraded Tor to 0.2.4.24 with OpenSSL 1.0.1i. 2014-10-03 14:08:20 +01:00
akwizgran
e5620f8b05 Parts of our jtorctl patch have been merged upstream. 2014-10-03 13:29:12 +01:00
akwizgran
cdb5a12156 Use the event bus to observe contacts connecting and disconnecting. 2014-10-03 10:04:02 +01:00
akwizgran
8b8df435a5 Separated event infrastructure from DB. 2014-10-03 09:44:54 +01:00
akwizgran
6a4ea49786 Merge branch 'simpler-threading'.
This merge reduces the number of thread pools.
2014-10-02 18:26:26 +01:00
akwizgran
941efb4bbe Merged IncomingConnectionExecutor and PluginExecutor into IoExecutor.
We don't need two separate executors for long-running IO threads.
2014-10-02 18:02:53 +01:00
akwizgran
d406853f68 Shut down the Tor process without hacks.
Tor has a controller command, TAKEOWNERSHIP, and a configuration option,
__OwningControllerProcess, that work together to ensure Tor shuts down
when the controlling process dies and/or disconnects from the control
port. By using them we can avoid creating runaway Tor processes that
have to be killed with hacks.
2014-07-08 22:35:37 +01:00
akwizgran
14c5b4e4ff Removed DatabaseUiExecutor as DatabaseExecutor is now single-threaded. 2014-07-04 15:16:55 +01:00
akwizgran
7d9ce4c973 Don't assume Tor has bootstrapped if it's already running. 2014-07-02 23:01:14 +01:00
akwizgran
4c9296d286 Merged all licensing info into a single file to avoid APK build problems. 2014-07-02 23:01:13 +01:00
akwizgran
b4e02a7196 Release Briar code (but not bundled libraries) under Apache 2 license. 2014-06-23 10:26:16 +01:00
akwizgran
353381c4d5 Recompiled Tor with OpenSSL 1.0.1h. 2014-06-06 13:23:47 +01:00
akwizgran
54fe589207 Upgraded Tor to 0.2.4.22. 2014-06-05 09:29:35 +01:00
akwizgran
294a8853f2 Consider Tor to have started when it's bootstrapped and built a circuit. 2014-06-05 09:29:35 +01:00