Commit Graph

315 Commits

Author SHA1 Message Date
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
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
6cdf68d6cb Initialise all connection windows when a contact is added. 2011-11-15 13:45:57 +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
0da94879ef Use aliases for shorter, clearer SQL. 2011-11-15 09:35:07 +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
7d09102c4d Advertise the Bluetooth address if the device is discoverable. 2011-11-08 21:12:08 +00:00
akwizgran
531889bd1f Log the local Bluetooth address. 2011-11-08 14:49:15 +00:00
akwizgran
2c4c8824d0 Removed references to raw types. 2011-11-08 13:17:28 +00:00
akwizgran
ef6f61426f Removed calls to supportsMulticast() for Java 1.5 compatibility. 2011-11-08 13:14:23 +00:00
akwizgran
1b0bd6961a You can't step in the same Enumeration twice. 2011-10-30 22:35:46 +00:00
akwizgran
7065f54a57 Prefer LAN interfaces for invitations, WAN for connections. 2011-10-30 22:26:23 +00:00
akwizgran
681e82547e Try to close sockets when an exception is caught. 2011-10-30 21:32:04 +00:00
akwizgran
2c72b1e2e2 If no local address is configured, bind to any address. 2011-10-30 21:31:24 +00:00
akwizgran
517aea3b1f Socket plugin that supports exchanging invitations by LAN multicast
(untested).
2011-10-30 20:50:55 +00:00
akwizgran
42ddfb444e Added a method to check which plugins support invitations. 2011-10-29 09:52:07 +01:00
akwizgran
d3060a3bd6 Class IDs may be in nested lists. Don't ask me why. 2011-10-28 16:46:51 +01:00
akwizgran
559cdfaeba Merged shared code in listener classes and made casts safe. 2011-10-28 15:48:30 +01:00
akwizgran
d2e1500ac1 Store the UUID in the local properties so it gets sent to contacts. 2011-10-28 13:17:17 +01:00
akwizgran
70c5d7ce75 Don't store the local address unless the device is discoverable. 2011-10-28 13:16:00 +01:00
akwizgran
0728f76933 Ignore case when comparing Bluetooth UUIDs. 2011-10-28 12:54:20 +01:00
akwizgran
df125bdcd2 Ignore case when comparing Bluetooth UUIDs. 2011-10-28 12:37:16 +01:00
akwizgran
48d638746c Invitation API and two (untested) implementations. 2011-10-27 17:52:03 +01:00
akwizgran
59485fe392 Added comments for columns that may be null. 2011-10-26 18:05:49 +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
b70b579fd6 Renamed locks in javadoc comments. 2011-10-26 15:49:35 +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
akwizgran
d2bac9a4f8 Test and bugfix for getMessageHeaders(). 2011-10-26 14:52:18 +01:00
akwizgran
2628823db7 Added a method to get all message headers in a given group (untested). 2011-10-25 17:12:37 +01:00
akwizgran
995518c48b Upgraded H2 jar and removed workaround for Blob.getBytes() bug.
The H2 developers are amazing. :-)
2011-10-25 09:42:27 +01:00
akwizgran
9ec8feec78 Added a method for retrieving the message body from the DB. 2011-10-21 20:42:43 +01:00
akwizgran
ef61eaa804 Separated MessageHeader interface from Message interface. 2011-10-21 18:42:27 +01:00