akwizgran
bcf8bcbd04
More unit tests.
2011-07-26 17:48:47 +01:00
akwizgran
bc1622b1fa
Unit tests and a bugfix. THE SYSTEM WORKS!
2011-07-26 17:24:26 +01:00
akwizgran
dc2476cb25
Unit tests.
2011-07-26 17:12:19 +01:00
akwizgran
1ea385e7af
Unit tests and a bugfix for the new database methods.
2011-07-26 16:46:50 +01:00
akwizgran
a86ef2142f
Sign the message with the group's private key if the group is
...
restricted, and check the signature if it should be present.
2011-07-25 21:54:49 +01:00
akwizgran
3f61d0c3df
Changed the message format to store the author and group inline - this
...
doesn't take a huge amount of space and allows every message to be
self-certifying.
2011-07-25 21:14:16 +01:00
akwizgran
586d1739ae
Removed salt from unrestricted groups: two unrestricted groups with
...
the same name will now be treated as the same group (this seems more
intuitive than the alternative).
2011-07-25 20:11:32 +01:00
akwizgran
b1f27757df
Switched to 256-bit ECDSA. Modified some tests because two signatures
...
over the same data are not necessarily identical. Key generation is
fast again - should I be worried? ;-)
2011-07-25 10:49:41 +01:00
akwizgran
fb95565880
Use the BouncyCastle provider so we can be sure we won't get
...
NoSuchAlgorithmExceptions. Key generation is *slow* - I guess that's a
good sign. ;-)
2011-07-25 10:38:46 +01:00
akwizgran
c98c968b87
Removed unnecessary Raw interface.
2011-07-24 17:47:17 +01:00
akwizgran
941460e3bc
Readers, writers and factories for subscription and transport updates.
2011-07-23 21:46:47 +01:00
akwizgran
65be63dc0c
Moved writers into their own package, replaced public static fields in
...
CryptoModule with provider methods.
2011-07-23 18:50:40 +01:00
akwizgran
13f18d9e40
Found the bug, it was just a SQL syntax error.
2011-07-23 11:29:23 +01:00
akwizgran
0edcb31d64
Store group details in the database. Some tests are still failing...
2011-07-23 01:29:18 +01:00
akwizgran
de648daca5
Bundles are gone - the batch-mode and stream-mode protocols now
...
consist of independently encrypted and authenticated packets (Ack,
Batch, Subscriptions and Transports so far).
2011-07-22 22:19:24 +01:00
akwizgran
5d000b62f8
Removed Writer.close().
2011-07-22 18:08:05 +01:00
akwizgran
e7f106a77f
Fixed unit tests.
2011-07-22 17:52:02 +01:00
akwizgran
a573e87c04
ReaderImpl now maintains either one or two bytes of lookahead,
...
depending on the value of the first byte, so that an object's initial
tag is included in the data seen by the ObjectReader. Digests and
signatures can therefore be calculated over objects by their readers
without any risk of ambiguity.
2011-07-22 17:39:59 +01:00
akwizgran
b4bf662b3e
Unit tests for HeaderReader.
2011-07-21 10:58:42 +01:00
akwizgran
5843f38803
Unit tests for BatchReader.
2011-07-21 10:14:23 +01:00
akwizgran
06ae0e0783
Use mocks for test objects with no side-effects.
2011-07-20 18:38:05 +01:00
akwizgran
f727420838
Removed signatures from headers and bundles, since the transport's
...
authentication will make them redundant.
2011-07-20 18:33:06 +01:00
akwizgran
45b4bef348
Catch ClassCastException when the encountered type doesn't match the
...
expected type, and re-throw as FormatException.
2011-07-20 15:07:17 +01:00
akwizgran
6b61cfa1bc
Factored out header reading and batch reading into separate classes
...
for easier testing.
2011-07-19 19:13:27 +01:00
akwizgran
fb528a85ad
Nested user-defined objects (and collections of them) can now be read
...
by registering ObjectReaders with the Reader.
2011-07-19 17:17:45 +01:00
akwizgran
a9e7cbd05c
Every encoded object should include its identifying tag.
2011-07-19 14:21:07 +01:00
akwizgran
ff984c69fb
Messages are no longer encoded as raw byte arrays.
2011-07-19 14:01:33 +01:00
akwizgran
30fc6c1a92
Defined some user-defined tags for protocol elements. Currently they're just adding redundancy, but in future they'll be used for parsing nested elements.
2011-07-18 17:44:18 +01:00
akwizgran
427142ae51
Read and write user-defined tags.
2011-07-18 16:46:03 +01:00
akwizgran
7a4171f3ba
A more efficient encoding for short strings, raws, lists and maps. Now we can encode a list of three small integers in 4 bytes like MessagePack does, should that ever turn out to be useful.
2011-07-18 16:06:09 +01:00
akwizgran
0bc8a31749
Cleaned up serial and protocol packages in preparation for user-defined types.
2011-07-18 14:33:41 +01:00
akwizgran
e25b7353ba
Only check the beginnings of font names, since the exact names vary by
...
platform.
2011-07-14 21:39:04 +01:00
akwizgran
62d69b6fb5
Don't use FileUtils.getBriarDirectory() in tests.
2011-07-14 20:42:41 +01:00
akwizgran
065b6e496f
Don't use the real Briar directory for unit tests.
2011-07-14 20:02:47 +01:00
akwizgran
b41465c2da
Use commons-io to measure free space.
2011-07-14 19:21:16 +01:00
akwizgran
fcedc34d10
Don't store subscription or transport updates that are older than those already received. Also some small changes to DatabaseComponent impls for readability.
2011-07-14 13:53:13 +01:00
akwizgran
836d30f6df
Retrieve messages from the database in raw form to avoid creating unnecessary short-lived objects. Added timestamps to headers.
2011-07-14 12:01:35 +01:00
akwizgran
d4382fd232
Replaced clearSubscriptions() and addSubscription() with setSubscriptions().
2011-07-14 09:52:05 +01:00
akwizgran
a121dcdda8
New retransmission mechanism, which does away with the need for bundle IDs and should cope better with high bandwidth-delay product links.
2011-07-14 09:39:15 +01:00
akwizgran
48359ec478
Updated buildfile for unit tests.
2011-07-13 16:46:21 +01:00
akwizgran
e13b0437c3
Rewrote the bundle reading and writing code to eliminate copying. Signatures and digests are now calculated on the fly as the data is read or written. This is a little bit tricky in the case of reading because ReaderImpl uses a lookahead byte, so the signature and message digest need to lag one byte behind.
2011-07-13 16:39:31 +01:00
akwizgran
c3643a037b
Added accessors for the amount of raw data read and written by readers and writers - this fixes a fixme in MessageParserImpl.
2011-07-12 20:27:37 +01:00
akwizgran
22a67cc0d2
Message parser and encoder.
2011-07-12 18:41:08 +01:00
akwizgran
2af6f19476
Check the return value from Signature.verify(). *cough*
2011-07-12 17:08:31 +01:00
akwizgran
3d549ea6ac
Builders for incoming and outgoing headers and batches. The protocol and serial components can now be used to serialise, sign, deserialise and verify real bundles (except for message parsing).
2011-07-12 16:50:20 +01:00
akwizgran
e0509db45d
Protocol refactoring. Each bundle now consists of a signed header and zero or more signed batches. There is no overall signature on the bundle, since the bundle's contents may need to be processed before the entire bundle has been read. The protocol does not prevent an adversary from removing batches from a bundle, reordering batches, moving them from one bundle to another, etc. However, since each batch is signed and acknowledged independently, no such guarantees are required. Bundle IDs will go away when the retransmission mechanism is changed.
2011-07-12 12:55:46 +01:00
akwizgran
4977695a79
Refactored readers and writers.
2011-07-12 11:28:26 +01:00
akwizgran
4f5eb21180
Builders for batches and bundles.
2011-07-11 12:25:04 +01:00
akwizgran
51e371f7ca
Added start/end methods for writing indefinite lists and maps.
2011-07-11 10:07:01 +01:00
akwizgran
0f4ffe9fbc
Added type-safe accessors and iterator accessors for lists and maps.
2011-07-10 18:31:18 +01:00