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