Commit Graph

277 Commits

Author SHA1 Message Date
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
akwizgran
cf49a28c95 Replaced SHA-256 with SHAd-256 to prevent length extension attacks. 2011-11-15 11:11:31 +00:00
akwizgran
effa5c9d8e Throw checked exception if concurrent attempts are made to remove a
contact.
2011-11-15 09:51:51 +00:00
akwizgran
6fd8493d3d Singleton lists and singleton sets aren't equal, so use lists
consistently.
2011-11-15 09:42:21 +00:00
akwizgran
2ad15518a5 Return transports that have no properties. 2011-11-15 09:00:51 +00:00
akwizgran
72be34768b Minor refactoring. 2011-11-14 22:14:52 +00:00
akwizgran
73aa7d14d7 Split transport identifiers into two: TransportId (globally unique)
and TransportIndex (locally unique).

This is the first step towards forward secrecy. Also removed the
Writable interface and unnecessary user-defined types, moved various
constants to ProtocolConstants and renamed some classes.
2011-11-14 21:40:05 +00:00
akwizgran
85e327035c Fixed some comments. 2011-11-08 12:44:42 +00:00
akwizgran
29eb900822 Non-JUnit tests for LAN socket plugin. 2011-10-30 22:39:20 +00:00
akwizgran
d1676781f0 Fixed test expectations. 2011-10-30 21:42:55 +00:00
akwizgran
70c7a9c077 Factored out non-Bluetooth-specific code. 2011-10-29 09:47:19 +01:00
akwizgran
712d9b7698 Updated test to match changes to plugin. 2011-10-28 13:37:52 +01:00
akwizgran
40689b7e6e Avoid NoSuchElementException if the connection stalls. 2011-10-28 13:13:05 +01:00
akwizgran
48d638746c Invitation API and two (untested) implementations. 2011-10-27 17:52:03 +01:00
akwizgran
7d73f9604d Added a method for getting unread message counts for all groups. 2011-10-26 17:56:35 +01:00
akwizgran
6d91603bf7 Moved MessageHeader into DB component and added read/starred flags. 2011-10-26 17:07:09 +01:00
akwizgran
0f6b0e88c1 Added message flags: read/unread and starred/unstarred. 2011-10-26 16:32:30 +01:00
akwizgran
94722a9f2a Broadcast an event when an author's rating changes. 2011-10-26 15:40:38 +01:00
akwizgran
097d11f471 Exposed getMessageHeaders() through DatabaseComponent interface. 2011-10-26 15:18:02 +01:00