Commit Graph

244 Commits

Author SHA1 Message Date
akwizgran
c5282c5b17 Moved some API classes into packages. 2015-12-17 16:56:57 +00:00
Torsten Grote
2d28dcada2 Create two new events to signal enabling and disabling of transports 2015-12-17 11:34:10 -02:00
akwizgran
c7e4d5ffa9 Merge branch '147-crypto_secretbox' into 'master'
147 crypto secretbox

Closes #147

See merge request !27
2015-12-17 09:23:26 +00:00
str4d
3f54657ca0 Simple test vectors for XSalsa20/Poly1305
Test vectors taken from NaCl paper.
2015-12-16 19:51:06 +00:00
akwizgran
60a5b28e57 Renamed DatabaseComponentTest. 2015-12-16 12:17:38 +00:00
akwizgran
6e61504d24 Removed message expiry code. #180 2015-12-16 12:17:38 +00:00
akwizgran
2ca2356ecc Moved MessageHeader to sync package. 2015-12-15 15:05:16 +00:00
akwizgran
e370cafb12 Moved classes from messaging package to sync package. 2015-12-15 15:05:06 +00:00
akwizgran
6dc225d037 Refactor KeyManager and TagRecogniser. #55 2015-12-14 11:05:37 +00:00
akwizgran
9868feeb2a Refactor KeyManager and TagRecogniser. #55 2015-12-14 11:02:49 +00:00
akwizgran
912ba394c5 Refactored FileUtils.
Removed methods that are no longer needed for Java 6, moved the remaining method into the utils directory.
2015-12-10 15:58:52 +00:00
akwizgran
947da886bf Fixed broken tests. 2015-12-10 15:14:50 +00:00
Ernir Erlingsson
a5fd7ff9dc Added dependency injections for FileUtils and removed redundant code 2015-12-10 11:07:10 +01:00
akwizgran
d0342f9a4e Merge branch 'junit-4-not-3' into 'master'
Don't mix JUnit 4's @Test with JUnit3's TestCase.

This is the world's most boring merge request. Android Studio was complaining about using JUnit 4's @Test annotations with JUnit 3's TestCase, so I fixed it.

Most of the changes come from Android Studio organising imports in a different order from Eclipse.

See merge request !8
2015-12-09 13:23:42 +00:00
Ernir Erlingsson
2a61fa94d1 modified .gitignore and removed *.iml from git 2015-12-09 00:33:22 +01:00
akwizgran
123dff3a3d Don't mix JUnit 4 annotations with JUnit3 TestCase. 2015-12-08 14:53:50 +00:00
akwizgran
061479dd68 Set source and target version to Java 6 in subprojects. 2015-12-04 10:12:01 +00:00
akwizgran
8529c976c2 Renamed a bunch of lock variables.
"synchLock" will become confusing when we have lots of objects with "sync" in the name.
2015-12-03 16:39:53 +00:00
akwizgran
7bc08b2de7 Updated Gradle wrapper. 2015-12-03 12:10:36 +00:00
akwizgran
2d346f7b73 Fixed library paths in Android Studio project files. 2015-12-03 11:33:46 +00:00
akwizgran
8ae3fb3e35 Upgraded Spongy Castle to 1.53, fixed tests. #146 2015-12-03 11:12:16 +00:00
akwizgran
427efdc7d6 Raise minimum Java version to 6, upgrade H2. #24 2015-12-02 14:59:51 +00:00
akwizgran
79d9b4b6af Raised minimum Android version to 2.3 (API 9). #23 2015-12-02 13:20:55 +00:00
akwizgran
7841ae52ca Renamed SerialModule, fixed Roboguice module list. 2015-11-30 16:47:33 +00:00
akwizgran
7eb7257076 Added project files for Android Studio. 2015-11-30 11:49:44 +00:00
akwizgran
027ae8340f Whitespace-only code formatting changes. 2015-11-30 09:38:25 +00:00
akwizgran
d519c543a6 Represent booleans with a single byte. 2015-05-02 21:12:33 +01:00
akwizgran
41c4c4d808 Renamed raw data type. 2015-05-02 21:05:23 +01:00
akwizgran
b8e37a5421 Renamed serial component to data, moved consumers to briar-core. 2015-05-02 20:39:24 +01:00
akwizgran
416719e3d9 Removed silly SerialComponent interface. 2015-05-02 20:30:25 +01:00
akwizgran
32c9ce50d9 Moved the messaging protocol one step closer to BSP.
This breaks backward compatibility for the wire protocol and messages
stored in the database. The database schema version has been
incremented.
2015-05-01 16:59:27 +01:00
akwizgran
dea5a44724 Simpler forum sharing UX. 2015-04-29 15:08:58 +01:00
akwizgran
b558218d48 Upgraded Bouncy Castle to 1.52. 2015-04-04 12:19:22 +01:00
akwizgran
a1d2aaf10e Use JDK 1.7, target Android 5.1. 2015-04-03 20:56:01 +01:00
akwizgran
f8a4a4920d Merge branch 'AbrahamKiggundu/briar-master': better lock encapsulation 2015-01-29 11:28:48 +00:00
akwizgran
0dbfd7073f Comments to indicate which locks guard which variables. 2015-01-29 11:12:41 +00:00
akwizgran
47bd84122e Code formatting and small cleanups. 2015-01-28 21:18:31 +00:00
akwizgran
7fbad8dc26 Use FortunaGenerator to implement PseudoRandom. 2015-01-14 20:46:03 +00:00
akwizgran
112d80420c Downgrade to 256-bit curve for performance.
Also reduced hash function to 256 bits because our target security level
is now 128 bits.
2015-01-09 13:23:44 +00:00
akwizgran
5d46d3a4b4 AuthenticatedCipher interface isn't needed outside crypto package. 2015-01-09 13:06:44 +00:00
akwizgran
dc5e37a96d Remove AAD from AuthenticatedCipher interface. 2015-01-09 13:01:02 +00:00
akwizgran
ed79719bab Unit tests for StreamEncrypterImpl. 2015-01-05 18:55:17 +00:00
akwizgran
1f69f0d2f6 Variable-length frames (untested). 2015-01-05 17:35:45 +00:00
akwizgran
d3bf2d59a1 Use the same maximum frame length for all transports. 2015-01-05 16:24:44 +00:00
akwizgran
358166bc12 Don't try to erase secrets from memory.
1. The things we're really trying to protect - contact identities,
message contents, etc - can't be erased from memory because they're
encapsulated inside objects we don't control.

2. Long-term secrets can't be protected by erasing them from memory
because they're stored in the database and the database key has to be
held in memory whenever the app's running.

3. If the runtime uses a compacting garbage collector then we have no
way to ensure an object is erased from memory.

4. Trying to erase secrets from memory makes the code more complex.

Conclusion: Let's not try to protect secrets from an attacker who can
read arbitrary memory locations.
2014-12-29 21:08:27 +00:00
akwizgran
f316d64afa Moved stream crypto to crypto component. 2014-12-29 19:55:05 +00:00
akwizgran
388b36b6be Check periodically for retransmittable packets. Bug #46. 2014-12-14 20:26:41 +00:00
akwizgran
d4fa656dbb Application layer keepalives to detect dead TCP connections.
DuplexOutgoingSession flushes its output stream if it's idle for a
transport-defined interval, causing an empty frame to be sent. The TCP
and Tor plugins use a socket timeout equal to twice the idle interval to
detect dead connections.

See bugs #27, #46 and #60.
2014-12-13 12:00:40 +00:00
akwizgran
64d644d8b8 Clean up output streams in unit test.
This fixes some lint warnings and may also fix dev task #102.
2014-12-05 19:22:35 +00:00
akwizgran
d94637b5cf Removed polling from ModemPlugin. 2014-12-05 12:46:11 +00:00