Commit Graph

345 Commits

Author SHA1 Message Date
akwizgran e47d4990c3 Fixed Bluetooth shutdown issues. 2011-12-09 23:01:32 +00:00
akwizgran 5ba5887565 Debugging Bluetooth threading issues. 2011-12-09 22:20:32 +00:00
akwizgran 8af7e72943 Cancel outstanding tasks and shut down the executor. 2011-12-09 21:13:53 +00:00
akwizgran cd068e89c0 Converted plugin executor to ScheduledExecutorService.
No Thread.sleep() till Brooklyn.
2011-12-09 21:02:36 +00:00
akwizgran 2014235b86 Log the server socket details to make it easier to run manual tests
between two machines.
2011-12-09 20:41:05 +00:00
akwizgran f9f41acde9 Added a connection registry to avoid creating redundant connections. 2011-12-09 17:34:58 +00:00
akwizgran 2494ff1a1e Let the plugin determine whether to flush the output stream after each
packet.
2011-12-08 22:13:35 +00:00
akwizgran 844ae8f0a7 Plugins may dispose of resources differently depending on whether a
connection was recognised.
2011-12-08 18:56:53 +00:00
akwizgran 0fdc69ff00 Unit tests for OutgoingBatchConnection. 2011-12-08 17:46:28 +00:00
akwizgran 6962814eec Log the exception class when logging exceptions. 2011-12-08 17:28:05 +00:00
akwizgran 9f0b865ba8 Plugins should use the executor rather than creating threads. 2011-12-08 16:57:24 +00:00
akwizgran e3242ebb06 Read the tag on a connection recogniser thread, don't block the
plugin.
2011-12-08 16:33:48 +00:00
akwizgran 6e080bb35d Dedicated executors for plugins and the connection recogniser. 2011-12-08 16:11:24 +00:00
akwizgran caf5f34828 Refactoring: moved high-level connection classes to protocol package. 2011-12-08 15:06:50 +00:00
akwizgran 1886609bef Removed frame padding code (soon to be obsolete). 2011-12-08 14:35:52 +00:00
akwizgran ae87100c8f Moved batch ID calculation off the IO thread. 2011-12-08 12:51:34 +00:00
akwizgran e2cb1027af Moved message verification into a separate thread pool. 2011-12-07 21:33:14 +00:00
akwizgran a9a81f0870 Removed unnecessary calls to MessageDigest.reset(). 2011-12-07 13:37:13 +00:00
akwizgran 1c41ffa7af Don't accept empty acks, batches or offers. 2011-12-07 13:32:17 +00:00
akwizgran 495baf8c70 BATCH_ID and MESSAGE_ID don't need to be structs. 2011-12-07 00:38:14 +00:00
akwizgran b7c3224618 Decouple the database from IO.
This will enable asynchronous access to the database for IO threads.
2011-12-07 00:23:35 +00:00
akwizgran e24a3218ca Moved message verification and DB writes off the IO thread. 2011-12-05 22:52:00 +00:00
akwizgran ab722f9371 Minor refactoring. 2011-12-02 16:32:50 +00:00
akwizgran 726799d848 Check that padding is set to zero. 2011-12-02 16:21:20 +00:00
akwizgran 4ab5dfcac0 Allow empty frames. 2011-12-02 16:10:44 +00:00
akwizgran c8338f9866 Connection readers and writers don't need the connection context. 2011-12-02 14:23:45 +00:00
akwizgran 51d58fadad Include the frame number in the header.
This ensures the frame number is covered by the MAC, cleanly
separating encryption from authentication (previously we depended on
the encryption layer to garble frames if they were reordered).
2011-12-02 13:37:44 +00:00
akwizgran 14d5e6fe64 Replaced encrypted IVs with pseudo-random tags. 2011-12-02 12:57:39 +00:00
akwizgran f3fdd85996 Renamed "encrypted IVs" as "tags" (actual crypto changes to follow). 2011-12-02 12:02:55 +00:00
akwizgran f7360cddde Renamed "user-defined types" as "structs" in the serialisation format. 2011-12-02 11:36:45 +00:00
akwizgran 28b9e399ae Don't swallow interrupts. 2011-12-01 19:49:22 +00:00
akwizgran 42430272f4 Removed the initiator flag from the IV (no longer needed with the new
key derivation rules).
2011-11-28 17:34:50 +00:00
akwizgran b72a90be21 String caches its hash code, so prefer HashMap to TreeMap. 2011-11-28 15:40:16 +00:00
akwizgran aefa7798e1 One more unit test for the road... 2011-11-24 22:12:05 +00:00
akwizgran 9345b5c71b Avoid DB lookups where possible. 2011-11-24 22:09:04 +00:00
akwizgran ff8010a945 Merge branch 'refs/heads/master' of ssh://akwizgran@briar.git.sourceforge.net/gitroot/briar/prototype 2011-11-24 14:59:04 +00:00
akwizgran 8068fa0d38 Don't keep connection windows in memory. 2011-11-24 13:56:58 +00:00
akwizgran 214b274ee5 Removable drive monitor for OS X 10.4 (JNotify requires at least 10.5). 2011-11-19 18:09:10 +00:00
akwizgran 3dc8a590c7 Use a native window to catch shutdown events. 2011-11-19 15:45:23 +01:00
akwizgran 046becd388 Shutdown manager (untested on Windows). 2011-11-18 17:13:55 +00:00
akwizgran dacaa4566d Minor protocol refactoring. 2011-11-18 11:27:34 +00:00
akwizgran 2b45cf0dd1 Accept connections asynchronously. 2011-11-17 18:59:34 +00:00
akwizgran 27a3f6e497 Erase known copies of keys (unit tests ensure we don't end up using
zeroed keys).
2011-11-17 09:54:24 +00:00
akwizgran 66d973bcdd Ignore expected IVs that arrive by the wrong transport.
This prevents an attacker from replaying connections to test whether a
transport endpoint has the same owner as an endpoint on another
transport (eg probing a Bluetooth device to see whether it has the
same owner as a given internet host).
2011-11-17 09:24:28 +00:00
akwizgran 4da7a685cd Minor code cleanups. 2011-11-16 18:15:32 +00:00
akwizgran 01dd658200 Keep the connection windows in memory. 2011-11-16 17:57:56 +00:00
akwizgran f10512d787 Erase keys after using them. (Copies created by ciphers, etc, may
still exist.)
2011-11-16 16:22:35 +00:00
akwizgran ece03038f4 Unit test for key derivation. 2011-11-16 15:56:54 +00:00
akwizgran a13a1769e5 Unit test for key derivation. 2011-11-16 15:54:17 +00:00
akwizgran f6ae4734ce Forward secrecy.
Each connection's keys are derived from a secret that is erased after
deriving the keys and the secret for the next connection.
2011-11-16 15:35:16 +00:00