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
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
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
akwizgran
d02a68edfc
Return a connection context for outgoing connections (the secret will
...
be included in this context in the near future).
2011-11-15 17:47:30 +00:00
akwizgran
fabdaf5957
Remove transport ID from connection context.
2011-11-15 17:32:31 +00:00
akwizgran
9220bb3426
Key derivation function based on NIST SP 800-108.
2011-11-15 17:19:11 +00:00
akwizgran
6a15c03e81
Store the incoming and outgoing secrets separately.
2011-11-15 16:07:14 +00:00
akwizgran
f41d48eb9f
Made secret keys erasable from memory.
2011-11-15 14:43:06 +00:00
akwizgran
23be7fd876
Removed double-encryption of shared secrets.
2011-11-15 14:09:28 +00:00
akwizgran
df054b1743
Store each connection window slot as a database row.
...
This is less memory-efficient but necessary for the coming forward
secrecy changes.
2011-11-15 13:08:20 +00:00