Commit Graph

1508 Commits

Author SHA1 Message Date
akwizgran
4e57029d98 Use constant-time GCM multiplier. 2015-01-06 19:30:11 +00:00
akwizgran
ed79719bab Unit tests for StreamEncrypterImpl. 2015-01-05 18:55:17 +00:00
akwizgran
1f69f0d2f6 Variable-length frames (untested). 2015-01-05 17:35:45 +00: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
akwizgran
f316d64afa Moved stream crypto to crypto component. 2014-12-29 19:55:05 +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
64d644d8b8 Clean up output streams in unit test.
This fixes some lint warnings and may also fix dev task #102.
2014-12-05 19:22:35 +00:00
akwizgran
d94637b5cf Removed polling from ModemPlugin. 2014-12-05 12:46:11 +00:00
akwizgran
0d12e39107 Bumped expiry date to 1 January 2015. 2014-12-05 10:28:51 +00:00
akwizgran
33d36b6ec4 Skip platform-specific tests when testing on another platform. 2014-12-05 10:28:34 +00:00
akwizgran
0b9671a0fa Updated Bouncy Castle source code. 2014-12-04 12:06:41 +00:00
akwizgran
04d1ef721d Removed leftovers of ancient Windows installer experiments. 2014-11-25 18:05:07 +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
68750083ea Updated vuln.pub manifest. 2014-11-24 22:20:14 +00:00
akwizgran
9eee6c1adc Updated Tor patch and recompiled Tor with patch applied. 2014-11-24 22:13:16 +00:00
akwizgran
992013e42a Added partial vuln.pub manifest to test vulnerability notifications. 2014-11-24 21:14:32 +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
ab467b3d3e Flush the output stream before rather than after waiting for packets.
See bug #27.
2014-11-09 18:03:24 +00:00
akwizgran
4b92de619c Added missing packet handlers to IncomingSession. 2014-11-09 17:20:06 +00:00
akwizgran
c280e213c8 Don't send tags for invitation connections. 2014-11-09 17:11:16 +00:00
akwizgran
8584194138 Removed redundant parameter checks. 2014-11-09 16:59:08 +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
9dbabdeceb Document the contract of DatabaseExecutor. 2014-11-08 16:40:22 +00:00
akwizgran
4009561996 Refactored PluginManager and Poller to remove non-open calls. Bug #15. 2014-11-08 15:40:51 +00:00
akwizgran
c2d6e9afde Some variables were still referring to TagRecogniser by its old name. 2014-11-06 20:51:10 +00:00
akwizgran
d321bc0a3e Renamed some inner classes to match the renamed outer class. 2014-11-06 13:53:59 +00:00
akwizgran
1d20761123 Messaging sessions aren't responsible for closing their streams.
The TransportReader/Writer's dispose() method should handle that, and
ConnectionManager is responsible for calling it.
2014-11-06 13:13:23 +00:00
akwizgran
b27a17db88 Erase temporary secrets after deriving keys. 2014-11-06 08:39:07 +00:00
akwizgran
1f4d801162 Interrupt all messaging sessions when the app starts shutting down.
This makes it more likely that connections will be closed cleanly.
However, the interrupt() method is currently ineffective for incoming
sessions as it won't interrupt a blocking read, e.g. when the packet
reader is waiting for a packet.
2014-11-06 08:24:08 +00:00
akwizgran
852a618cb3 Interrupt messaging session if contact or transport is removed. 2014-11-06 08:10:29 +00:00
akwizgran
c202b6f0ac Renamed ConnectionManager to ConnectionDispatcher.
Because that's what it does.
2014-11-05 19:47:54 +00:00
akwizgran
4ca83842d1 Moved ConnectionDispatcher and ConnectionRegistry to plugins package. 2014-11-05 19:40:07 +00:00
akwizgran
26d93b83b4 Factored out StreamReader/Writer from messaging layer. 2014-11-05 19:22:01 +00:00
akwizgran
dfa4860200 Cancel database queries if the messaging session has been interrupted. 2014-11-05 18:34:59 +00:00
akwizgran
5b8eab6035 Interrupt the other side of a duplex connection if an exception occurs. 2014-11-05 18:28:05 +00:00
akwizgran
33c3eb7308 PacketWriters aren't responsible for flushing their output streams. 2014-11-04 17:03:06 +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