mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-13 03:09:04 +01:00
Before the introducee sends her ACK, she derives a master key from the ephemeral shared secret as before. Two nonces and a MAC key are then derived from the master key. The local introducee signs one of the nonces and calculates a MAC over her own identity public key, ephemeral public key, transport properties and timestamp. The local introducee includes the signature and MAC in her ACK. On receiving the remote introducee's ACK, the local introducee verifies the signature and MAC. Should the verification fail, an ABORT is sent to the introducer and the remote introducee that was added as inactive is deleted again.
95 lines
2.7 KiB
Java
95 lines
2.7 KiB
Java
package org.briarproject;
|
|
|
|
import org.briarproject.api.clients.ClientHelper;
|
|
import org.briarproject.api.contact.ContactManager;
|
|
import org.briarproject.api.db.DatabaseComponent;
|
|
import org.briarproject.api.event.EventBus;
|
|
import org.briarproject.api.identity.IdentityManager;
|
|
import org.briarproject.api.introduction.IntroductionManager;
|
|
import org.briarproject.api.lifecycle.LifecycleManager;
|
|
import org.briarproject.api.properties.TransportPropertyManager;
|
|
import org.briarproject.api.sync.SyncSessionFactory;
|
|
import org.briarproject.clients.ClientsModule;
|
|
import org.briarproject.contact.ContactModule;
|
|
import org.briarproject.crypto.CryptoModule;
|
|
import org.briarproject.data.DataModule;
|
|
import org.briarproject.db.DatabaseModule;
|
|
import org.briarproject.event.EventModule;
|
|
import org.briarproject.identity.IdentityModule;
|
|
import org.briarproject.introduction.IntroductionGroupFactory;
|
|
import org.briarproject.introduction.IntroductionModule;
|
|
import org.briarproject.introduction.MessageSender;
|
|
import org.briarproject.lifecycle.LifecycleModule;
|
|
import org.briarproject.properties.PropertiesModule;
|
|
import org.briarproject.sync.SyncModule;
|
|
import org.briarproject.system.SystemModule;
|
|
import org.briarproject.transport.TransportModule;
|
|
|
|
import javax.inject.Singleton;
|
|
|
|
import dagger.Component;
|
|
|
|
@Singleton
|
|
@Component(modules = {
|
|
TestDatabaseModule.class,
|
|
TestPluginsModule.class,
|
|
TestSeedProviderModule.class,
|
|
LifecycleModule.class,
|
|
IntroductionModule.class,
|
|
DatabaseModule.class,
|
|
CryptoModule.class,
|
|
EventModule.class,
|
|
ContactModule.class,
|
|
IdentityModule.class,
|
|
TransportModule.class,
|
|
ClientsModule.class,
|
|
SyncModule.class,
|
|
SystemModule.class,
|
|
DataModule.class,
|
|
PropertiesModule.class
|
|
})
|
|
public interface IntroductionIntegrationTestComponent {
|
|
|
|
void inject(IntroductionIntegrationTest testCase);
|
|
|
|
void inject(ContactModule.EagerSingletons init);
|
|
|
|
void inject(CryptoModule.EagerSingletons init);
|
|
|
|
void inject(IntroductionModule.EagerSingletons init);
|
|
|
|
void inject(LifecycleModule.EagerSingletons init);
|
|
|
|
void inject(PropertiesModule.EagerSingletons init);
|
|
|
|
void inject(SyncModule.EagerSingletons init);
|
|
|
|
void inject(SystemModule.EagerSingletons init);
|
|
|
|
void inject(TransportModule.EagerSingletons init);
|
|
|
|
LifecycleManager getLifecycleManager();
|
|
|
|
EventBus getEventBus();
|
|
|
|
IdentityManager getIdentityManager();
|
|
|
|
ContactManager getContactManager();
|
|
|
|
IntroductionManager getIntroductionManager();
|
|
|
|
TransportPropertyManager getTransportPropertyManager();
|
|
|
|
SyncSessionFactory getSyncSessionFactory();
|
|
|
|
/* the following methods are only needed to manually construct messages */
|
|
|
|
DatabaseComponent getDatabaseComponent();
|
|
|
|
ClientHelper getClientHelper();
|
|
|
|
MessageSender getMessageSender();
|
|
|
|
IntroductionGroupFactory getIntroductionGroupFactory();
|
|
}
|