diff --git a/briar-core/src/org/briarproject/transport/KeyManagerImpl.java b/briar-core/src/org/briarproject/transport/KeyManagerImpl.java index e372cb928d29ba13898e2404daa010857d774c46..a6c8f1be1271a857591c46e27185c477d50a7a7c 100644 --- a/briar-core/src/org/briarproject/transport/KeyManagerImpl.java +++ b/briar-core/src/org/briarproject/transport/KeyManagerImpl.java @@ -19,8 +19,6 @@ import org.briarproject.api.plugins.duplex.DuplexPluginFactory; import org.briarproject.api.plugins.simplex.SimplexPluginFactory; import org.briarproject.api.transport.KeyManager; import org.briarproject.api.transport.StreamContext; -import org.briarproject.api.transport.TransportKeyManager; -import org.briarproject.api.transport.TransportKeyManagerFactory; import java.util.HashMap; import java.util.Map; diff --git a/briar-api/src/org/briarproject/api/transport/TransportKeyManager.java b/briar-core/src/org/briarproject/transport/TransportKeyManager.java similarity index 82% rename from briar-api/src/org/briarproject/api/transport/TransportKeyManager.java rename to briar-core/src/org/briarproject/transport/TransportKeyManager.java index dc3e22f9f9eea1fdb0f84513ceffc7a84e668561..56ed6b9ca5909a98c9224a0d52e1b81e731bbea0 100644 --- a/briar-api/src/org/briarproject/api/transport/TransportKeyManager.java +++ b/briar-core/src/org/briarproject/transport/TransportKeyManager.java @@ -1,11 +1,12 @@ -package org.briarproject.api.transport; +package org.briarproject.transport; import org.briarproject.api.contact.ContactId; import org.briarproject.api.crypto.SecretKey; import org.briarproject.api.db.DbException; import org.briarproject.api.db.Transaction; +import org.briarproject.api.transport.StreamContext; -public interface TransportKeyManager { +interface TransportKeyManager { void start(Transaction txn) throws DbException; diff --git a/briar-api/src/org/briarproject/api/transport/TransportKeyManagerFactory.java b/briar-core/src/org/briarproject/transport/TransportKeyManagerFactory.java similarity index 61% rename from briar-api/src/org/briarproject/api/transport/TransportKeyManagerFactory.java rename to briar-core/src/org/briarproject/transport/TransportKeyManagerFactory.java index 1b2f3a29b5c08ca548ccf5a5a6f8ea7b3c1b5ae8..ca1021a0c1e5628dd70e6d481434bacd2c33f4d8 100644 --- a/briar-api/src/org/briarproject/api/transport/TransportKeyManagerFactory.java +++ b/briar-core/src/org/briarproject/transport/TransportKeyManagerFactory.java @@ -1,8 +1,8 @@ -package org.briarproject.api.transport; +package org.briarproject.transport; import org.briarproject.api.TransportId; -public interface TransportKeyManagerFactory { +interface TransportKeyManagerFactory { TransportKeyManager createTransportKeyManager(TransportId transportId, long maxLatency); diff --git a/briar-core/src/org/briarproject/transport/TransportKeyManagerFactoryImpl.java b/briar-core/src/org/briarproject/transport/TransportKeyManagerFactoryImpl.java index 4efe408560df30f3736d1c5b90eec90d63f888d2..dbc05778ba6ab5cd828dbc0c6515043420254a2b 100644 --- a/briar-core/src/org/briarproject/transport/TransportKeyManagerFactoryImpl.java +++ b/briar-core/src/org/briarproject/transport/TransportKeyManagerFactoryImpl.java @@ -5,15 +5,13 @@ import org.briarproject.api.crypto.CryptoComponent; import org.briarproject.api.db.DatabaseComponent; import org.briarproject.api.db.DatabaseExecutor; import org.briarproject.api.system.Clock; -import org.briarproject.api.transport.TransportKeyManager; -import org.briarproject.api.transport.TransportKeyManagerFactory; import java.util.concurrent.Executor; import java.util.concurrent.ScheduledExecutorService; import javax.inject.Inject; -public class TransportKeyManagerFactoryImpl implements +class TransportKeyManagerFactoryImpl implements TransportKeyManagerFactory { private final DatabaseComponent db; diff --git a/briar-core/src/org/briarproject/transport/TransportKeyManagerImpl.java b/briar-core/src/org/briarproject/transport/TransportKeyManagerImpl.java index 4565849d85af115cd3f06b4ffc75425318e782ef..3afd0ef928b8005c3e1d98153c17c9d4d49bc001 100644 --- a/briar-core/src/org/briarproject/transport/TransportKeyManagerImpl.java +++ b/briar-core/src/org/briarproject/transport/TransportKeyManagerImpl.java @@ -10,7 +10,6 @@ import org.briarproject.api.db.DbException; import org.briarproject.api.db.Transaction; import org.briarproject.api.system.Clock; import org.briarproject.api.transport.StreamContext; -import org.briarproject.api.transport.TransportKeyManager; import org.briarproject.api.transport.TransportKeys; import org.briarproject.transport.ReorderingWindow.Change; @@ -64,6 +63,7 @@ class TransportKeyManagerImpl implements TransportKeyManager { keys = new HashMap<ContactId, MutableTransportKeys>(); } + @Override public void start(Transaction txn) throws DbException { long now = clock.currentTimeMillis(); lock.lock(); @@ -156,6 +156,7 @@ class TransportKeyManagerImpl implements TransportKeyManager { }); } + @Override public void addContact(Transaction txn, ContactId c, SecretKey master, long timestamp, boolean alice) throws DbException { lock.lock(); @@ -177,6 +178,7 @@ class TransportKeyManagerImpl implements TransportKeyManager { } } + @Override public void removeContact(ContactId c) { lock.lock(); try { @@ -192,6 +194,7 @@ class TransportKeyManagerImpl implements TransportKeyManager { } } + @Override public StreamContext getStreamContext(Transaction txn, ContactId c) throws DbException { lock.lock(); @@ -214,6 +217,7 @@ class TransportKeyManagerImpl implements TransportKeyManager { } } + @Override public StreamContext getStreamContext(Transaction txn, byte[] tag) throws DbException { lock.lock(); diff --git a/briar-core/src/org/briarproject/transport/TransportModule.java b/briar-core/src/org/briarproject/transport/TransportModule.java index c66865bdbd6bb3b37b189d69b9f13d9edc05451f..461e1d8dcb91fd883d01d6e8eabf8da1312d4aef 100644 --- a/briar-core/src/org/briarproject/transport/TransportModule.java +++ b/briar-core/src/org/briarproject/transport/TransportModule.java @@ -7,7 +7,6 @@ import org.briarproject.api.lifecycle.LifecycleManager; import org.briarproject.api.transport.KeyManager; import org.briarproject.api.transport.StreamReaderFactory; import org.briarproject.api.transport.StreamWriterFactory; -import org.briarproject.api.transport.TransportKeyManagerFactory; import javax.inject.Inject; import javax.inject.Singleton; diff --git a/briar-tests/src/org/briarproject/transport/KeyManagerImplTest.java b/briar-tests/src/org/briarproject/transport/KeyManagerImplTest.java index d7ff0f0ceab76d5c602f6272a21c9eeb4414b957..3ac7d5f1c75499e00a6be260b13baafc0dc5d35e 100644 --- a/briar-tests/src/org/briarproject/transport/KeyManagerImplTest.java +++ b/briar-tests/src/org/briarproject/transport/KeyManagerImplTest.java @@ -14,8 +14,6 @@ import org.briarproject.api.identity.AuthorId; import org.briarproject.api.plugins.PluginConfig; import org.briarproject.api.plugins.simplex.SimplexPluginFactory; import org.briarproject.api.transport.StreamContext; -import org.briarproject.api.transport.TransportKeyManager; -import org.briarproject.api.transport.TransportKeyManagerFactory; import org.jmock.Expectations; import org.jmock.Mockery; import org.jmock.lib.concurrent.DeterministicExecutor; @@ -29,6 +27,7 @@ import java.util.Collections; import static org.briarproject.TestUtils.getRandomBytes; import static org.briarproject.TestUtils.getRandomId; import static org.briarproject.TestUtils.getSecretKey; +import static org.briarproject.api.transport.TransportConstants.TAG_LENGTH; import static org.junit.Assert.assertEquals; public class KeyManagerImplTest extends BriarTestCase { @@ -46,10 +45,11 @@ public class KeyManagerImplTest extends BriarTestCase { private final ContactId contactId = new ContactId(42); private final ContactId inactiveContactId = new ContactId(43); private final TransportId transportId = new TransportId("tId"); + private final TransportId unknownTransportId = new TransportId("id"); private final StreamContext streamContext = new StreamContext(contactId, transportId, getSecretKey(), getSecretKey(), 1); - private final byte[] tag = getRandomBytes(42); + private final byte[] tag = getRandomBytes(TAG_LENGTH); public KeyManagerImplTest() { keyManager = new KeyManagerImpl(db, executor, pluginConfig, @@ -114,12 +114,19 @@ public class KeyManagerImplTest extends BriarTestCase { } @Test - public void testGetStreamContextForContact() throws Exception { + public void testGetStreamContextForInactiveContact() throws Exception { assertEquals(null, keyManager.getStreamContext(inactiveContactId, transportId)); + } + + @Test + public void testGetStreamContextForUnknownTransport() throws Exception { assertEquals(null, keyManager - .getStreamContext(inactiveContactId, new TransportId("id"))); + .getStreamContext(contactId, unknownTransportId)); + } + @Test + public void testGetStreamContextForContact() throws Exception { context.checking(new Expectations() {{ oneOf(db).startTransaction(false); will(returnValue(txn)); @@ -135,10 +142,14 @@ public class KeyManagerImplTest extends BriarTestCase { } @Test - public void testGetStreamContextForTag() throws Exception { - assertEquals(null, keyManager - .getStreamContext(new TransportId("id"), tag)); + public void testGetStreamContextForTagAndUnknownTransport() + throws Exception { + assertEquals(null, + keyManager.getStreamContext(unknownTransportId, tag)); + } + @Test + public void testGetStreamContextForTag() throws Exception { context.checking(new Expectations() {{ oneOf(db).startTransaction(false); will(returnValue(txn)); diff --git a/briar-tests/src/org/briarproject/transport/TransportKeyManagerTest.java b/briar-tests/src/org/briarproject/transport/TransportKeyManagerImplTest.java similarity index 99% rename from briar-tests/src/org/briarproject/transport/TransportKeyManagerTest.java rename to briar-tests/src/org/briarproject/transport/TransportKeyManagerImplTest.java index d1bc128f6971c15f32b285937a43608531fa5e40..0f039dfdac7b73d56d920fe6321ceae13df9f0ec 100644 --- a/briar-tests/src/org/briarproject/transport/TransportKeyManagerTest.java +++ b/briar-tests/src/org/briarproject/transport/TransportKeyManagerImplTest.java @@ -13,7 +13,6 @@ import org.briarproject.api.system.Clock; import org.briarproject.api.transport.IncomingKeys; import org.briarproject.api.transport.OutgoingKeys; import org.briarproject.api.transport.StreamContext; -import org.briarproject.api.transport.TransportKeyManager; import org.briarproject.api.transport.TransportKeys; import org.hamcrest.Description; import org.jmock.Expectations; @@ -41,7 +40,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; -public class TransportKeyManagerTest extends BriarTestCase { +public class TransportKeyManagerImplTest extends BriarTestCase { private final TransportId transportId = new TransportId("id"); private final long maxLatency = 30 * 1000; // 30 seconds