Commit Graph

424 Commits

Author SHA1 Message Date
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
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
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
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
akwizgran
8dc0cf2c46 Activities with intent filters are exported by default. 2014-06-05 09:29:35 +01:00
akwizgran
586a0c468f Fixed logging of Tor circuit paths, added more Tor logging. 2014-06-05 09:29:35 +01:00
akwizgran
5ea0cce2bf Tell Tor to shut down when control socket is closed; more Tor logging.
Patched jtorctl to pass more information about circuit events to the
controller to help us debug connection problems.
2014-05-14 15:23:36 +01:00
akwizgran
458d52e7ea Bumped expiry date to 17 May 2014. 2014-05-09 20:13:31 +01:00
akwizgran
c8cc287fa1 Delete contacts. Dev task #85. 2014-05-09 20:08:20 +01:00
akwizgran
6b79cbfc55 No need to call getResources() for getString(). 2014-05-09 20:08:20 +01:00
akwizgran
d755668b4a Close soft keyboard in SetupActivity. 2014-05-09 19:09:13 +01:00
akwizgran
eaff042601 Don't try to close server sockets twice.
This may have been the cause of bug #69. Removed the wait-for-shutdown
code in DroidtoothPlugin that was added to attempt to avoid that bug.
2014-05-09 19:09:13 +01:00
akwizgran
c86525c1d4 Kill zombie Tor processes more reliably. 2014-05-09 19:09:13 +01:00
akwizgran
4dcf9f632e Show which contacts subscribe to each forum. Dev task #79. 2014-05-02 16:24:49 +01:00