akwizgran
ec29c4d1d3
Changed the format of transport properties from (key, value) pairs to
...
(transport name, key, value) triples. This makes it possible for each
transport plugin to update its locally stored properties atomically.
2011-08-04 11:07:28 +01:00
akwizgran
5be9d953ee
Use fail() instead of assertTrue(false).
2011-08-03 21:19:04 +01:00
akwizgran
93ee4d004e
Reduced maximum public key lengths to reasonable lengths for ECDSA.
2011-08-03 21:08:09 +01:00
akwizgran
c6ded0227d
Unit test for database exception handling.
2011-08-03 21:01:37 +01:00
akwizgran
c90a18278b
Allow a maximum length to be specified when reading strings or byte
...
arrays, check it before allocating the buffer, and always specify the
maximum length when reading untrusted data - otherwise
CountingConsumer will reject the packet, but not before we've tried to
allocate a buffer of the specified size (up to 2 GB).
2011-08-03 19:29:30 +01:00
akwizgran
5fd87647f8
Replaced assertions with exceptions in database code, and changed
...
exception handling so that database connections aren't closed with
transactions in progress - this should make it possible to close the
database cleanly if an exception occurs.
2011-08-03 18:23:47 +01:00
akwizgran
7752690b29
Modified ReaderImpl so it doesn't read lookahead bytes until they're
...
needed - this will make it possible to read to the end of a packet and
then pass on to the next packet without needing a PushbackInputStream.
2011-08-03 17:12:37 +01:00
akwizgran
7baefb3e7b
Updated the transport plugin API.
2011-08-03 16:13:13 +01:00
akwizgran
6e7d5a06b2
API for batch-mode and stream-mode transport plugins.
2011-08-02 15:09:24 +01:00
akwizgran
2740b2b002
s/transport details/transport properties/g
2011-08-02 13:08:44 +01:00
akwizgran
0e48f4ba55
Listeners for local transport updates.
2011-08-02 09:44:15 +01:00
akwizgran
ff0909a0e9
Listeners for subscription changes.
2011-08-02 09:22:54 +01:00
akwizgran
0d0885bf4b
Don't throw a DbException if a contact sends duplicate batches.
2011-08-01 17:56:18 +01:00
akwizgran
8e8c83b83c
Use the combination of batch ID and contact ID as the primary key for
...
received and sent batches, since batches sent to or received from
different contacts may contain identical lists of messages and
therefore have identical IDs.
2011-08-01 17:37:48 +01:00
akwizgran
02c4d9197c
Added CounterModeTest to ant buildfile.
2011-08-01 14:36:19 +01:00
akwizgran
9586e0de9c
Unit tests for CTR-mode encryption.
2011-08-01 14:01:17 +01:00
akwizgran
cee4956b37
If no messages are added to a batch, don't call BatchWriter.finish() -
...
this allows the caller to avoid creating an empty packet by delaying
creation of the packet's header and trailer until something's written
to the packet's body. Changed the return semantics of
DatabaseComponent.generateBatch(ContactId, BatchWriter,
Collection<MessageId>) so that the IDs of messages considered for
inclusion in the batch but no longer sendable are also returned - this
allows the caller to remove them from the set of requested IDs.
2011-07-28 11:17:33 +01:00
akwizgran
adee3e121c
Added support for registering listeners with the database that are
...
called when new messages are available, and a new method
hasSendableMessages(ContactId) that listeners can call to see whether
it's worth trying to create a batch.
2011-07-27 20:27:43 +01:00
akwizgran
e93fbe0b20
Implemented subscription visibility. If a subscription is not visible
...
to a contact, do not accept, offer, or send messages belonging to that
group to or from that contact, and do not list that group in
subscription updates sent to that contact.
2011-07-27 16:43:19 +01:00
akwizgran
4311b1a224
Added RequestReaderTest to ant buildfile.
2011-07-27 11:08:17 +01:00
akwizgran
b161e5ed1d
Request reader and unit test.
2011-07-27 11:06:54 +01:00
akwizgran
0933092295
Added RequestWriterImplTest to ant buildfile.
2011-07-26 22:02:51 +01:00
akwizgran
0cf8477504
Read and write offers. Mostly boilerplate.
2011-07-26 22:00:39 +01:00
akwizgran
9e78837055
Implemented OfferWriter and RequestWriter, made all the writers
...
reusable (though not thread-safe), and guiced the readers.
2011-07-26 21:36:55 +01:00
akwizgran
426e415676
OK, I think that's enough unit tests for one day.
2011-07-26 18:37:58 +01:00
akwizgran
1e60be4b75
Unit tests for DatabaseComponent.
2011-07-26 18:25:14 +01:00
akwizgran
8ba5b46d59
More unit tests for DatabaseComponent.
2011-07-26 18:11:57 +01:00
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
10edc05dff
Database portion of the offer/request/transfer protocol (untested).
2011-07-26 15:40:34 +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
30271c14ce
Reduced the visibility of some classes.
2011-07-23 18:54:06 +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
fe58fb4c30
Fixed more unit tests.
2011-07-22 17:57:25 +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
b5220b096a
Message timestamp should have TIMESTAMP type.
2011-07-21 11:52:39 +01:00
akwizgran
b4bf662b3e
Unit tests for HeaderReader.
2011-07-21 10:58:42 +01:00