Commit Graph

296 Commits

Author SHA1 Message Date
akwizgran
c232d0ceb1 Asynchronous offers and requests for BMP.
Offered and requested message IDs are stored in the database rather than
being owned by DuplexConnections. This paves the way for moving to a
simplex transport layer.
2014-01-04 16:03:31 +00:00
akwizgran
e9d0ad97c4 Removed an unnecessary join. 2013-12-28 14:00:25 +00:00
akwizgran
6338e5959a Replaced the messagesToAck table with a flag in the statuses table. 2013-12-28 13:55:19 +00:00
akwizgran
7a57375438 Interleave samples to get a better estimate of PBKDF2 running time. 2013-12-28 13:44:26 +00:00
akwizgran
ff01b181bc Renamed a database method. 2013-12-22 01:56:11 +00:00
akwizgran
51b3a10be2 Removed public/private groups from the wire protocol.
The distinction between inbox groups and other groups can be maintained
internally, there's no need to represent it on the wire.
2013-12-20 13:32:36 +00:00
akwizgran
e8d864c004 Throw DbException if database encryption key is missing.
This can happen on Android if the app is automatically restarted after a
crash.
2013-12-19 23:33:38 +00:00
akwizgran
676ef9518b Unit tests to catch a noobish JDBC error. 2013-12-19 23:13:08 +00:00
akwizgran
0a61fc40ae Fixed a SQL typo. Unit tests would've caught this. 2013-12-19 22:36:42 +00:00
akwizgran
6de0c334c7 Missed a method when replacing private messages with private groups.
Unit tests would've caught this.
2013-12-19 22:28:23 +00:00
akwizgran
caec26e9cd Only allow one private group (the inbox) to be shared with each contact. 2013-12-19 22:12:49 +00:00
akwizgran
0dc869228b Replaced private messages with private groups.
Private messages are now the same as group messages, but groups can be
private or public. When a contact is added, a private group is created
and designated as the inbox for exchanging private messages with the
contact.
2013-12-19 21:53:26 +00:00
akwizgran
1d4213e9c6 When replying to a message, don't use an earlier timestamp.
This produces a saner user experience when devices have differing
clocks.
2013-12-11 16:25:00 +00:00
akwizgran
47708d489d Added the ability to remove pseudonyms from the database. 2013-12-10 22:23:37 +00:00
akwizgran
667dbfdd4a Removed an unused DB method and index. 2013-12-10 21:02:11 +00:00
akwizgran
db5702d7fc Calibrate PBKDF2 iterations on first run. Fixes development issue #29. 2013-12-05 23:18:07 +00:00
akwizgran
bab2aca584 Patched Weupnp to support older Android devices.
Older devices such as the Huawei U8210 don't completely support the Java
1.6 API. Calling an unsupported method crashes the app.
2013-12-05 21:21:43 +00:00
akwizgran
290fbe4ac8 Downgraded to H2 1.3.170 again to support older Android devices.
Older devices such as the Huawei U8210 don't completely support the Java
1.6 API. Calling an unsupported method crashes the app.
2013-12-05 20:19:44 +00:00
akwizgran
3e6d7ba66a Removed subject line, which won't be used in new conversation views. 2013-11-30 15:09:26 +00:00
akwizgran
766b6f067a Use javax.inject annotations rather than the Guice versions. 2013-11-29 14:12:39 +00:00
akwizgran
418b3c9a9d Upgraded Weupnp to version 0.1.3. 2013-11-26 12:55:06 +00:00
akwizgran
222d7414d7 Upgraded H2 to version 1.3.174.
As we no longer support Java 1.5 we can stay up to date with H2
releases.
2013-11-26 12:33:55 +00:00
akwizgran
27c4306e03 Switched from NIST curve P-384 to RFC 5639 curve brainpoolP384r1. 2013-11-24 15:11:46 +00:00
akwizgran
3b5769cf8a Use Java 1.6 instead of 1.5. We no longer aim to support OS X 10.4. 2013-11-22 12:00:00 +00:00
akwizgran
a2aa13051a Fixed a crash caused by trying to modify an immutable list. 2013-11-19 23:23:07 +00:00
akwizgran
1a351535be The response to a BMP Offer is now an Ack and/or a Request.
The Request packet now contains a list of message IDs, rather than a
bitmap referring to the list of messages IDs in the Offer. This allows
the Request to be understood out of context, e.g. if the Offer and
Request are sent over separate connections or a connection is replayed.
2013-11-19 22:13:26 +00:00
akwizgran
2e472c1d16 Added the ability to skip serialised objects. 2013-11-19 21:28:53 +00:00
akwizgran
6764ade475 Delimited structs - this will allow us to skip unrecognised structs. 2013-11-19 18:05:44 +00:00
akwizgran
e0d313a28c Simplified serialisation format: removed compact encodings. 2013-10-11 15:16:16 +01:00
akwizgran
7b01e42da8 Removed the ability to star messages (unused in UI). 2013-09-27 18:15:43 +01:00
akwizgran
0a153acd02 Removed peer moderation (may be restored after beta testing). 2013-09-27 18:04:27 +01:00
akwizgran
b94954544d Removed restricted groups (may be restored after beta testing). 2013-09-27 15:11:04 +01:00
akwizgran
c868764244 Separate FileUtils implementations for Android and desktop builds.
The method used by Commons IO to get the available disk space fails on
Android devices that lack a df binary - use the Android API instead.
2013-07-27 20:50:05 +01:00
akwizgran
95788cc1c6 Simplified the KDF implementation, since one iteration is enough.
We don't need to call HMAC-SHA-384 more than once to get 256 bits of key
material. The code will throw a RuntimeException if CIPHER_KEY_BYTES is
changed in future so that one iteration's no longer enough.
2013-07-12 19:05:27 +01:00
akwizgran
a8d86a1b05 Don't use a byte[1] where a byte will do. 2013-07-12 18:59:52 +01:00
akwizgran
a731b68e9f Switched from CMAC to HMAC-SHA-384 in key derivation function. 2013-07-12 18:56:12 +01:00
akwizgran
2ee3869327 Switched to AESLightEngine to minimise cache timing side-channel leaks. 2013-07-12 18:54:50 +01:00
akwizgran
a2fffedc64 Erase temporary copies of keys. 2013-07-12 18:53:15 +01:00
akwizgran
e9859e9f38 The counter mode KDF was not correctly following NIST SP 800-108.
Fixes bug #25. CMAC is used as the PRF. Note that we're currently using
a version of Spongy Castle with a CMAC implementation that's vulnerable
to a side-channel attack - this has been reported and fixed upstream but
we haven't yet upgraded to the fixed version.
2013-07-11 15:13:48 +01:00
akwizgran
d02266d827 Moved Android-specific plugin code into briar-android project.
This removes the other projects' dependency on the Android API.
2013-06-27 16:26:52 +01:00
akwizgran
473cec8735 Moved desktop-specific code into a separate project (other task #34). 2013-06-27 16:05:31 +01:00
akwizgran
3e6d3e0b1f Downgraded H2 to version 1.3.170 (last version that supports Java 1.5). 2013-06-19 16:10:26 +01:00
akwizgran
b2e7f9f3b6 Removed an unused method and an unused source jar. 2013-06-19 14:08:43 +01:00
akwizgran
3e0c16b59a Removed all uses of JCE so we can use full-strength crypto on all JVMs. 2013-06-17 16:29:46 +01:00
akwizgran
1808ceaf58 Replaced further JCE calls with direct instantiation of SC objects. 2013-06-14 12:22:32 +01:00
akwizgran
a979cab43a Don't pass a null provider to the Cipher constructor. 2013-06-14 11:24:14 +01:00
akwizgran
155a231292 Replaced JCE provider calls with direct instantiation of Spongy Castle classes. 2013-06-14 10:57:48 +01:00
akwizgran
3054605a79 Set javac's target version to Java 1.5 in the ant buildfiles. 2013-06-13 18:38:54 +01:00
akwizgran
a4d3daaa3e Removed a Java 1.6 API call. 2013-06-13 17:55:12 +01:00
akwizgran
e1ec17f4b6 Made the invitation protocol symmetrical.
Both devices try to make outgoing connections and accept incoming
connections simultaneously. This should lead to faster connection
establishment when there are asymmetrical connectivity problems, such as
devices that are unable to receive LAN multicast packets or make
themselves discoverable via Bluetooth.
2013-06-13 13:10:22 +01:00