Commit Graph

49 Commits

Author SHA1 Message Date
akwizgran
7a0e22d44c Renamed clock API package and fixed a test. 2012-09-07 12:47:05 +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
akwizgran
a9d196d511 Use the same method as Android to generate the Bluetooth UUID. 2012-08-22 11:53:41 +01: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
ec6f60b065 Tor plugin using Silvertunnel's Netlib (untested). 2012-02-06 22:30:07 +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
3e61adb623 Avoid making alien calls with locks held. 2011-12-10 19:21:00 +00:00
akwizgran
e47d4990c3 Fixed Bluetooth shutdown issues. 2011-12-09 23:01:32 +00:00
akwizgran
5ba5887565 Debugging Bluetooth threading issues. 2011-12-09 22:20:32 +00:00
akwizgran
4671b50b37 Close the invitation socket early if a connection is received. 2011-12-09 21:36:53 +00:00
akwizgran
8af7e72943 Cancel outstanding tasks and shut down the executor. 2011-12-09 21:13:53 +00:00
akwizgran
cd068e89c0 Converted plugin executor to ScheduledExecutorService.
No Thread.sleep() till Brooklyn.
2011-12-09 21:02:36 +00:00
akwizgran
2014235b86 Log the server socket details to make it easier to run manual tests
between two machines.
2011-12-09 20:41:05 +00:00
akwizgran
f9f41acde9 Added a connection registry to avoid creating redundant connections. 2011-12-09 17:34:58 +00:00
akwizgran
9abe920edb Plugin code cleanup. 2011-12-09 00:08:15 +00:00
akwizgran
2494ff1a1e Let the plugin determine whether to flush the output stream after each
packet.
2011-12-08 22:13:35 +00:00
akwizgran
6962814eec Log the exception class when logging exceptions. 2011-12-08 17:28:05 +00:00
akwizgran
9f0b865ba8 Plugins should use the executor rather than creating threads. 2011-12-08 16:57:24 +00:00
akwizgran
6e080bb35d Dedicated executors for plugins and the connection recogniser. 2011-12-08 16:11:24 +00:00
akwizgran
d9fc8d18d1 Better handling of InterruptedExceptions. 2011-12-08 13:55:19 +00:00
akwizgran
28b9e399ae Don't swallow interrupts. 2011-12-01 19:49:22 +00:00
akwizgran
7bf2ee64a8 Use immutable collections for thread safety. 2011-11-29 11:01:09 +00:00
akwizgran
b773660bca Advertise the Bluetooth address if the device is discoverable in
either GIAC or LIAC mode.
2011-11-28 15:51:48 +00:00
akwizgran
4da7a685cd Minor code cleanups. 2011-11-16 18:15:32 +00:00
akwizgran
73aa7d14d7 Split transport identifiers into two: TransportId (globally unique)
and TransportIndex (locally unique).

This is the first step towards forward secrecy. Also removed the
Writable interface and unnecessary user-defined types, moved various
constants to ProtocolConstants and renamed some classes.
2011-11-14 21:40:05 +00:00
akwizgran
7d09102c4d Advertise the Bluetooth address if the device is discoverable. 2011-11-08 21:12:08 +00:00
akwizgran
531889bd1f Log the local Bluetooth address. 2011-11-08 14:49:15 +00:00
akwizgran
7065f54a57 Prefer LAN interfaces for invitations, WAN for connections. 2011-10-30 22:26:23 +00:00
akwizgran
42ddfb444e Added a method to check which plugins support invitations. 2011-10-29 09:52:07 +01:00
akwizgran
d2e1500ac1 Store the UUID in the local properties so it gets sent to contacts. 2011-10-28 13:17:17 +01:00
akwizgran
70c5d7ce75 Don't store the local address unless the device is discoverable. 2011-10-28 13:16:00 +01:00
akwizgran
0728f76933 Ignore case when comparing Bluetooth UUIDs. 2011-10-28 12:54:20 +01:00
akwizgran
df125bdcd2 Ignore case when comparing Bluetooth UUIDs. 2011-10-28 12:37:16 +01:00
akwizgran
48d638746c Invitation API and two (untested) implementations. 2011-10-27 17:52:03 +01:00
akwizgran
55182528cf Q: What does the plugin manager do? A: It manages plugins. 2011-10-14 14:49:29 +01:00
akwizgran
64e2d7bca9 Refactoring: shorter class names. 2011-10-12 17:25:37 +01:00
akwizgran
c5d9d9fa64 Minor concurrency cleanups. 2011-10-12 17:11:31 +01:00
akwizgran
3a07d1b882 Plugins don't need their own copies of configs and properties. 2011-10-12 16:52:39 +01:00
akwizgran
a49a95347f Use dedicated classes for transport properties and configs. 2011-10-11 17:28:47 +01:00
akwizgran
4059fbf863 Moved plugin API from transport package to plugins package and merged
transport subpackages.
2011-10-10 16:18:48 +01:00
akwizgran
125ae1b640 Always call the callback outside the plugin's lock. 2011-10-08 13:13:28 +01:00
akwizgran
5f40015ec2 Moved callback initialisation from start() to constructor so it can be
accessed outside the lock.
2011-10-08 12:46:35 +01:00
akwizgran
a3a5ebc14f Removed unused exceptions. Also disabled output for ant tests. 2011-10-08 12:27:13 +01:00
akwizgran
4b1ffbe85b Logging for plugins. 2011-10-07 13:59:19 +01:00
akwizgran
a9b1a9123b Use discovery rather than hardcoded URLs (which don't work).
Two devices that aren't discoverable won't be able to
communicate. (Likely to affect Linux devices, since changing
discoverability requires root on Linux.)
2011-10-07 13:36:24 +01:00
akwizgran
16c9bf7079 Unit test refactoring. 2011-10-07 00:08:32 +01:00
akwizgran
8fa77b57da Bluetooth plugin (untested). 2011-10-06 19:33:12 +01:00