Commit Graph

6699 Commits

Author SHA1 Message Date
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 45a51b4926 ExceptionHandler interface. 2011-12-06 10:58:26 +00:00
akwizgran 0b749ca9e5 Javadoc. 2011-12-06 10:53:09 +00:00
akwizgran 00df158ad6 Ensure semaphore is released if an exception is thrown. 2011-12-06 00:03:05 +00:00
akwizgran f474ed229d Limit the number of waiting database writes to avoid running out of
memory.
2011-12-05 23:16:27 +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 6752781835 Removed redundant padding check. 2011-12-02 16:24:00 +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 2fb797a197 Throw an exception rather than blocking if a transaction is started
after the database has closed.
2011-12-01 20:05:45 +00:00
akwizgran 28b9e399ae Don't swallow interrupts. 2011-12-01 19:49:22 +00:00
akwizgran 2a38efd13a Added the Bouncy Castle sources. 2011-11-29 21:10:22 +00:00
akwizgran 851a44eb40 Return a copy when explicitly asked for one (fixes a test). 2011-11-29 21:09:48 +00:00
akwizgran e5c8a1415d Use a single SecureRandom instance to avoid blocking on creation. 2011-11-29 21:07:50 +00:00
akwizgran a3067dbff8 Don't create copies of erasable keys. 2011-11-29 11:03:57 +00:00
akwizgran 7bf2ee64a8 Use immutable collections for thread safety. 2011-11-29 11:01:09 +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 b773660bca Advertise the Bluetooth address if the device is discoverable in
either GIAC or LIAC mode.
2011-11-28 15:51:48 +00:00
akwizgran e23f646181 Cache the return value of Arrays.hashCode(). 2011-11-28 15:44:19 +00:00
akwizgran b72a90be21 String caches its hash code, so prefer HashMap to TreeMap. 2011-11-28 15:40:16 +00:00
akwizgran ebd6ebf902 Made TransportConfig and TransportProperties thread-safe. 2011-11-28 15:36:36 +00:00
akwizgran a348ff9091 Return immutable collections from the database. 2011-11-28 15:29:53 +00:00
akwizgran 40109000ad Use CountDownLatch rather than wait/notify. 2011-11-28 15:22:29 +00:00
akwizgran 26c7f1bd80 Use CopyOnWriteArrayList for listener lists. 2011-11-28 15:12:13 +00:00
akwizgran c9a43ad4bd Fixed a test. 2011-11-24 22:17:02 +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 98148085b6 Don't lock the list of listeners while calling them. 2011-11-23 12:13:51 +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 b2226067e1 Don't start shutdown hook threads more than once. 2011-11-19 17:23:18 +00:00
akwizgran bc7d882af6 Upgraded H2 jar (the new version was built on OS X 10.4 for Java 1.5
compatibility).
2011-11-19 17:05:10 +00:00
akwizgran 8d74a02ad9 Added comments to WindowsShutdownManagerImpl. 2011-11-19 16:49:04 +01:00
akwizgran bb4c79322e Added WindowsShutdownManagerImplTest to ant buildfile. 2011-11-19 16:42:39 +01: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 859ece6328 Erase connection windows before discarding them.
And I rewrote the locking in ConnectionRecogniserImpl again. I hate
that class so much.
2011-11-18 15:25:30 +00:00
akwizgran a349a3f1ea Fixed the locking in ConnectionRecogniserImpl. Again.
Database calls are made outside the lock, with the exception of
{get,set}ConnectionWindow(), which seems to be unavoidable if we want
to ensure replay protection within and across sessions.
2011-11-18 14:16:51 +00:00
akwizgran dacaa4566d Minor protocol refactoring. 2011-11-18 11:27:34 +00:00
akwizgran 30580f71ec Made erasable keys thread-safe. 2011-11-18 11:05:07 +00:00
akwizgran 6fada9f243 Finer-grained locking in the connection recogniser. 2011-11-17 20:06:19 +00:00
akwizgran 2b45cf0dd1 Accept connections asynchronously. 2011-11-17 18:59:34 +00:00