Commit Graph

155 Commits

Author SHA1 Message Date
akwizgran
f6360c09d4 Added utility methods for converting string to UTF-8 and vice versa. 2014-02-07 22:00:51 +00:00
akwizgran
92d5fb4f1d Compact encodings for integers, strings and byte arrays.
This adds complexity but will save a lot of bandwidth, as most of the
strings and byte arrays we want to send are less than 128 bytes.

The extra complexity isn't exposed outside of the serial component.
2014-02-07 18:50:28 +00:00
akwizgran
6296f0f790 Removed redundant call to checkEnabled() - it's called from start(). 2014-02-07 15:05:48 +00:00
akwizgran
52b29b16ba Merge branch 'jnotify-multiarch' into 'master'
Upgrade jnotify to 0.94 to support 64-bit

This upgrades to 0.94 and selects the correct native lib via ${os.arch}. The binaries are from the jnotify sourceforge download page, you can verify them. Also patched up build.xml to display stack trace when exceptions are thrown inside a test.
2014-02-07 13:03:08 +00:00
Ximin Luo
217ff30c54 update classpath for jnotify 2014-02-06 17:52:43 +00:00
akwizgran
a45d09ef5c Show whether identities are anonymous, unknown, or verified.
Dev task #52. Known but unverified identities are also supported, but
currently unused. These will be used in future for contacts who've been
introduced but not verified face to face.
2014-02-04 12:32:51 +00:00
Ximin Luo
2bdccef705 upgrade to jnotify 0.94 (patched) for 64-bit support, and improve error reporting in tests
- add a UnixRemovableDriveMonitor.checkEnabled to pre-emptively check if it's loaded
- os.arch is always x86,x86_64 on windows, i386,amd64 on linux
- source: http://www.java-gaming.org/index.php/topic,14110
- we'll deal with freebsd support when we come to it, jnotify doesn't even do this atm
2014-01-30 12:37:18 +00:00
akwizgran
d52139e99b Use JUnit's Assume to skip tests rather than returning from the tests.
This way the tests won't show up as having run if they didn't.
2014-01-28 21:55:57 +00:00
akwizgran
822392f9e7 Use strings rather than hashes to identify transports. Dev task #64. 2014-01-24 10:39:34 +00:00
akwizgran
468db2a97b Use a mock timer to test the database cleaner. 2014-01-16 20:17:26 +00:00
akwizgran
e5353dc6d4 Replaced AuthenticatedCipher opmode with a boolean. 2014-01-16 18:59:02 +00:00
akwizgran
a168a7ba89 Upgraded to BouncyCastle 1.50. Added bouncy -> spongy conversion script. 2014-01-16 15:21:42 +00:00
akwizgran
6af3c54c28 Removed shouldFlush() from plugins, added missing PacketWriter method. 2014-01-15 17:10:25 +00:00
akwizgran
db96994d5c Simplified the serialisation format. Other task #39.
The new format is simpler but less efficient for small integers, short
strings and short byte arrays.
2014-01-14 22:40:47 +00:00
akwizgran
8886d954d7 Reorganised Guice modules. Contribute entropy to pool on Linux/Android. 2014-01-14 19:33:17 +00:00
akwizgran
6f161103ae Log the timing of startup tasks so we can find bottlenecks. 2014-01-13 21:58:34 +00:00
akwizgran
c9928348ef Use the Fortuna generator instead of the JVM's SecureRandom. Bug #4.
Note that this is only the generator part of Fortuna, not the
accumulator. The generator requires a seed, which is provided by a
platform-specific implementation of SeedProvider. On Linux the
implementation reads the seed from /dev/urandom.
2014-01-13 19:16:33 +00:00
akwizgran
a565e0c749 Removed unused ZipUtils and unit tests. 2014-01-13 19:04:25 +00:00
akwizgran
623e7330ed Store schema version in database. Dev task #50.
If the schema of the database is incompatible with the schema expected
by the code, the database throws a DbSchemaException. LifecycleManager
indicates the error to BriarService, which uses HomeScreenActivity to
show a notification and quit the app.
2014-01-09 21:00:40 +00:00
akwizgran
ea47420e99 Add a password strength meter to SetupActivity. Dev task #42. 2014-01-09 01:29:00 +00:00
akwizgran
832476412c Changed the root package from net.sf.briar to org.briarproject. 2014-01-08 16:18:30 +00:00
akwizgran
dce70f487c Merged clock and os packages, moved events into their own package. 2014-01-08 15:45:02 +00:00
akwizgran
bf1a72c826 Rewrote EC key encoding and added fuzzing tests to track down bug #33. 2014-01-05 21:25:56 +00:00
akwizgran
3779f6ea8b Limit the number of offered messages per contact.
Also fixed a bug in addGroup(): SELECT COUNT (NULL) doesn't work.
2014-01-04 21:57:13 +00:00
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
6338e5959a Replaced the messagesToAck table with a flag in the statuses table. 2013-12-28 13:55:19 +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
676ef9518b Unit tests to catch a noobish JDBC error. 2013-12-19 23:13:08 +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
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
27c4306e03 Switched from NIST curve P-384 to RFC 5639 curve brainpoolP384r1. 2013-11-24 15:11:46 +00:00
akwizgran
0325bba86c Fixed some resource leak warnings in unit tests.
Four more warnings were left unfixed because quick fixes would've broken
the tests.
2013-11-22 12:56:42 +00:00
akwizgran
26eebee8d9 Reverted some changes that were made for Java 1.5 compatibility.
Removed Commons IO, which we were only using as a replacement for
File.getFreeSpace() on desktop plaftorms.

Note: The Huawei U8210 (Android 2.1) doesn't have all the Java 1.6
standard library methods, and crashes if they're called. Specifically,
String.isEmpty() and NetworkInterface.supportsMulticast() are missing,
so the changes removing those methods were not reverted.
2013-11-22 12:49:20 +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
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
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