Commit Graph

260 Commits

Author SHA1 Message Date
akwizgran
d940c637c2 Fixed key derivation issues, moved tag encoding into crypto component. 2012-10-24 20:05:18 +01:00
akwizgran
27e50b8495 Implemented KeyManager (untested).
A test is failing due to key derivation errors - must be fixed!
2012-10-24 18:16:17 +01:00
akwizgran
cc6e9d53ad Allow duplex connections' dispose() methods to throw IOExceptions. 2012-10-19 21:52:53 +01:00
akwizgran
a12d5ac340 Removed tag from connection context. 2012-10-19 21:19:52 +01:00
akwizgran
7739bcdd06 Second part of key rotation implementation. Work in progress. 2012-10-08 18:15:25 +01:00
akwizgran
021b3c5a62 Code cleanup: "static final" is unnecessary in interfaces. 2012-09-27 10:49:46 +01:00
akwizgran
e534722d60 Removed invitation code from simplex plugins, cleaned up Gmail plugin. 2012-09-26 12:34:37 +01:00
akwizgran
36cd02128c Unit tests and fixes for DatabaseComponent(Impl). 2012-09-26 11:38:26 +01:00
akwizgran
2ff439ffe6 Separated contact transports from secrets and cleaned up some tests. 2012-09-24 18:27:20 +01:00
akwizgran
e779210ced First stage of key rotation refactoring. Some tests are failing. 2012-09-23 17:40:54 +01:00
akwizgran
7a0e22d44c Renamed clock API package and fixed a test. 2012-09-07 12:47:05 +01:00
Daryl
0fa945a7ed Updated gmail plugin and unit test, removed unused class. 2012-09-07 16:40:39 +08:00
akwizgran
59dc065c55 Plugin factories can supply clocks for their plugins if needed. 2012-09-06 17:35:52 +01:00
akwizgran
960ead0247 Wrapped the system clock in an interface so it can be replaced in tests. 2012-09-06 17:21:03 +01:00
Daryl
617c65dd48 Added gmail plugin containing both imap and smtp, with unit test 2012-08-30 18:48:25 +08:00
akwizgran
a104548f7c Allow for the maximum overhead when calculating capacity. 2012-08-28 14:22:29 +01:00
akwizgran
521ed076ca Whitespace. 2012-08-28 12:18:00 +01:00
akwizgran
ff73905330 Changed to fixed-length frames (mostly untested). 2012-08-28 09:15:04 +01:00
akwizgran
f4b34ca975 Moved defunct invitation and installer code to sandpit repo. 2012-07-03 10:49:43 +01:00
akwizgran
3eb3f8be3d Code cleanup for the transport protocol. 2012-05-24 19:08:53 +01:00
akwizgran
d6b260ed61 Use AES/GCM instead of AES/CTR and HMAC.
This makes us Suite B compliant and saves 32 bytes per frame. The
AES/GCM implementation refuses to decrypt the frame header before
checking the MAC, so we have to use AES/CTR to peek at the header. The
header is still covered by the MAC, and we still check it after peeking!
2012-05-24 18:38:19 +01:00
akwizgran
1ca4ea9dcd Further progress towards incremental subscription updates. 2012-05-18 23:54:03 +02:00
akwizgran
46ed0cc4b1 Minor changes to serialisation library (mostly renaming). 2012-05-09 13:17:04 +02:00
akwizgran
5814826573 Separated key agreement algorithm from signature algorithm. 2012-04-28 18:02:28 +01:00
akwizgran
b01b17f2b1 Fixed some key derivation bugs and removed an unnecessary argument.
CryptoComponentImpl needs some unit tests.
2012-03-29 20:11:11 +01:00
akwizgran
0391c4cfcd Merged some redundant code. 2012-02-24 00:01:47 +00:00
akwizgran
c316ebcf7a Partial implementation of the invitation protocol (untested). 2012-02-23 23:18:25 +00:00
akwizgran
34cd8cddc3 Upgraded hash function to SHA-384 and MAC to HMAC-SHA-384.
This matches the security level of AES-256 according to NSA Suite B. To
better comply with Suite B we should replace the combination of CTR mode
and HMAC with GCM, which would reduce the MAC size from 48 to 16 bytes.
2012-02-22 13:17:07 +00:00
akwizgran
4ca5be7c06 Added a flag to indicate the last frame of the connection. 2012-02-07 10:46:01 +00:00
akwizgran
6da30ca486 Plan B: Remove error correction and reliability layers and the
consequent distinction between segments and frames.
2012-02-06 16:03:09 +00:00
akwizgran
3d4b5e6282 Make room for the ack header. 2012-01-24 09:28:28 +00:00
akwizgran
3a77ba9aaf Allow the transport to specify the maximum segment length. 2012-01-20 23:06:51 +00:00
akwizgran
e43ffe1ab4 Frame reordering window. 2012-01-19 23:26:26 +00:00
akwizgran
02c516492f Moved connection window size to TransportConstants. 2012-01-19 22:13:26 +00:00
akwizgran
12393581f9 Split the functionality of ConnectionReaderImpl into layers. 2012-01-19 19:52:15 +00:00
akwizgran
1f39bfef78 Distinguish between recoverable and unrecoverable errors. 2012-01-19 19:27:04 +00:00
akwizgran
249c82d30e Renamed frame cipher -> segment cipher, frame key -> segment key. 2012-01-17 21:44:28 +00:00
akwizgran
6085b70b85 Factory methods for segmented connection writers. 2012-01-17 20:29:30 +00:00
akwizgran
dbeb7a207e Added factory methods for segmented connection readers. 2012-01-17 20:21:26 +00:00
akwizgran
f6ed6dd60b Converted incoming encryption layer from frames to segments. 2012-01-17 16:45:25 +00:00
akwizgran
8c0020873c Updated transport constants and renamed some test classes. 2012-01-17 14:56:30 +00:00
akwizgran
79814bd406 Segmented plugin interfaces should extend general plugin interfaces. 2012-01-17 13:02:20 +00:00
akwizgran
07f8607c04 Initial support for tagging every segment (untested). 2012-01-13 15:50:43 +00:00
akwizgran
ac136d3732 Pass segments rather than frames to/from segmented plugins. 2012-01-13 15:05:42 +00:00
akwizgran
d0e402062a Unit tests for segmented encrypter and decrypter. 2012-01-13 13:06:43 +00:00
akwizgran
90e54d94e6 Encrypter and decrypter for segmented transports (untested). 2012-01-13 11:54:55 +00:00
akwizgran
ab9b05448d APIs for segmented transports. 2012-01-13 10:53:23 +00:00
akwizgran
99caec9448 Refactoring.
Unidirectional transports and connections are now called
simplex rather than batch. Bidirectional transports and connections
are now called duplex rather than stream.
2012-01-11 17:00:47 +00:00
akwizgran
f2de23854e Added BoundedExecutor and documented executor policies. 2011-12-10 00:59:29 +00:00
akwizgran
5ba5887565 Debugging Bluetooth threading issues. 2011-12-09 22:20:32 +00:00