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
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
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
b72a90be21
String caches its hash code, so prefer HashMap to TreeMap.
2011-11-28 15:40:16 +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
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
8d74a02ad9
Added comments to WindowsShutdownManagerImpl.
2011-11-19 16:49:04 +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
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
13ebd369e2
The KDF was using CTR mode unsafely.
...
The data to be encrypted should go in the IV, with a blank
plaintext, so that the ciphertext is equal to the keystream.
Putting the data in the plaintext would have led to different keys
derived from the same source consisting of the same keystream XORed
with different guessable plaintexts. That would have been bad.
2011-11-17 09:01:59 +00:00
akwizgran
a144884ecd
Erase connection windows if the JVM shuts down cleanly.
2011-11-16 18:41:40 +00:00
akwizgran
031aa53dc7
Minor SQL cleanups.
2011-11-16 18:28:34 +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