mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-12 10:49:06 +01:00
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.
161 lines
6.3 KiB
XML
161 lines
6.3 KiB
XML
<project name='briar-tests' default='test'>
|
|
<fileset id='api-jars' dir='../briar-api/libs'>
|
|
<include name='*.jar'/>
|
|
</fileset>
|
|
<fileset id='core-jars' dir='../briar-core/libs'>
|
|
<include name='*.jar'/>
|
|
</fileset>
|
|
<fileset id='desktop-jars' dir='../briar-desktop/libs'>
|
|
<include name='*.jar'/>
|
|
</fileset>
|
|
<fileset id='test-jars' dir='libs'>
|
|
<include name='*.jar'/>
|
|
</fileset>
|
|
<path id='api-classes'>
|
|
<pathelement location='../briar-api/build'/>
|
|
</path>
|
|
<path id='core-classes'>
|
|
<pathelement location='../briar-core/build'/>
|
|
</path>
|
|
<path id='desktop-classes'>
|
|
<pathelement location='../briar-desktop/build'/>
|
|
</path>
|
|
<path id='test-classes'>
|
|
<pathelement location='build'/>
|
|
</path>
|
|
<target name='clean'>
|
|
<delete dir='../briar-api/build'/>
|
|
<delete dir='../briar-core/build'/>
|
|
<delete dir='../briar-desktop/build'/>
|
|
<delete dir='build'/>
|
|
<delete dir='test.tmp'/>
|
|
</target>
|
|
<target name='compile'>
|
|
<mkdir dir='../briar-api/build'/>
|
|
<javac srcdir='../briar-api/src'
|
|
destdir='../briar-api/build' source='1.6' target='1.6'
|
|
includeantruntime='false' debug='off'>
|
|
<classpath>
|
|
<fileset refid='api-jars'/>
|
|
</classpath>
|
|
</javac>
|
|
<mkdir dir='../briar-core/build'/>
|
|
<javac srcdir='../briar-core/src'
|
|
destdir='../briar-core/build' source='1.6' target='1.6'
|
|
includeantruntime='false' debug='off'>
|
|
<classpath>
|
|
<fileset refid='core-jars'/>
|
|
<fileset refid='api-jars'/>
|
|
<path refid='api-classes'/>
|
|
</classpath>
|
|
</javac>
|
|
<mkdir dir='../briar-desktop/build'/>
|
|
<javac srcdir='../briar-desktop/src'
|
|
destdir='../briar-desktop/build' source='1.6' target='1.6'
|
|
includeantruntime='false' debug='off'>
|
|
<classpath>
|
|
<fileset refid='desktop-jars'/>
|
|
<fileset refid='core-jars'/>
|
|
<fileset refid='api-jars'/>
|
|
<path refid='core-classes'/>
|
|
<path refid='api-classes'/>
|
|
</classpath>
|
|
</javac>
|
|
<mkdir dir='build'/>
|
|
<javac srcdir='src' destdir='build' source='1.6' target='1.6'
|
|
includeantruntime='false' debug='off'>
|
|
<classpath>
|
|
<fileset refid='test-jars'/>
|
|
<fileset refid='desktop-jars'/>
|
|
<fileset refid='core-jars'/>
|
|
<fileset refid='api-jars'/>
|
|
<path refid='desktop-classes'/>
|
|
<path refid='core-classes'/>
|
|
<path refid='api-classes'/>
|
|
</classpath>
|
|
</javac>
|
|
</target>
|
|
<target name='test' depends='compile'>
|
|
<junit printsummary='withOutAndErr' fork='yes' forkmode='once'>
|
|
<assertions>
|
|
<enable/>
|
|
</assertions>
|
|
<classpath>
|
|
<fileset refid='test-jars'/>
|
|
<fileset refid='desktop-jars'/>
|
|
<fileset refid='core-jars'/>
|
|
<fileset refid='api-jars'/>
|
|
<path refid='test-classes'/>
|
|
<path refid='desktop-classes'/>
|
|
<path refid='core-classes'/>
|
|
<path refid='api-classes'/>
|
|
</classpath>
|
|
<sysproperty key='java.library.path' value='../briar-desktop/libs'/>
|
|
<test name='org.briarproject.LockFairnessTest'/>
|
|
<test name='org.briarproject.ProtocolIntegrationTest'/>
|
|
<test name='org.briarproject.crypto.EllipticCurveMultiplicationTest'/>
|
|
<test name='org.briarproject.crypto.FortunaGeneratorTest'/>
|
|
<test name='org.briarproject.crypto.FortunaSecureRandomTest'/>
|
|
<test name='org.briarproject.crypto.KeyAgreementTest'/>
|
|
<test name='org.briarproject.crypto.KeyDerivationTest'/>
|
|
<test name='org.briarproject.crypto.KeyEncodingAndParsingTest'/>
|
|
<test name="org.briarproject.crypto.PasswordBasedKdfTest"/>
|
|
<test name="org.briarproject.crypto.PasswordStrengthEstimatorImplTest"/>
|
|
<test name='org.briarproject.crypto.StreamDecrypterImplTest'/>
|
|
<test name='org.briarproject.crypto.StreamEncrypterImplTest'/>
|
|
<test name='org.briarproject.db.BasicH2Test'/>
|
|
<test name='org.briarproject.db.DatabaseCleanerImplTest'/>
|
|
<test name='org.briarproject.db.DatabaseComponentImplTest'/>
|
|
<test name='org.briarproject.db.ExponentialBackoffTest'/>
|
|
<test name='org.briarproject.lifecycle.ShutdownManagerImplTest'/>
|
|
<test name='org.briarproject.lifecycle.WindowsShutdownManagerImplTest'/>
|
|
<test name='org.briarproject.messaging.ConstantsTest'/>
|
|
<test name='org.briarproject.messaging.ConsumersTest'/>
|
|
<test name='org.briarproject.messaging.PacketReaderImplTest'/>
|
|
<test name='org.briarproject.messaging.SimplexMessagingIntegrationTest'/>
|
|
<test name='org.briarproject.messaging.SimplexOutgoingSessionTest'/>
|
|
<test name='org.briarproject.plugins.ConnectionRegistryImplTest'/>
|
|
<test name='org.briarproject.plugins.PluginManagerImplTest'/>
|
|
<test name='org.briarproject.plugins.file.LinuxRemovableDriveFinderTest'/>
|
|
<test name='org.briarproject.plugins.file.MacRemovableDriveFinderTest'/>
|
|
<test name='org.briarproject.plugins.file.PollingRemovableDriveMonitorTest'/>
|
|
<test name='org.briarproject.plugins.file.RemovableDrivePluginTest'/>
|
|
<test name='org.briarproject.plugins.file.UnixRemovableDriveMonitorTest'/>
|
|
<test name='org.briarproject.plugins.modem.CountryCodesTest'/>
|
|
<test name='org.briarproject.plugins.modem.ModemPluginTest'/>
|
|
<test name='org.briarproject.plugins.tcp.LanTcpPluginTest'/>
|
|
<test name='org.briarproject.serial.ReaderImplTest'/>
|
|
<test name='org.briarproject.serial.WriterImplTest'/>
|
|
<test name='org.briarproject.system.LinuxSeedProviderTest'/>
|
|
<test name='org.briarproject.transport.KeyManagerImplTest'/>
|
|
<test name='org.briarproject.transport.KeyRotationIntegrationTest'/>
|
|
<test name='org.briarproject.transport.ReorderingWindowTest'/>
|
|
<test name='org.briarproject.transport.StreamReaderImplTest'/>
|
|
<test name='org.briarproject.transport.StreamWriterImplTest'/>
|
|
<test name='org.briarproject.transport.TransportIntegrationTest'/>
|
|
<test name='org.briarproject.transport.TransportTagRecogniserTest'/>
|
|
<test name='org.briarproject.util.ByteUtilsTest'/>
|
|
<test name='org.briarproject.util.StringUtilsTest'/>
|
|
</junit>
|
|
</target>
|
|
<target name='test-slow' depends='compile'>
|
|
<junit printsummary='on' fork='yes' forkmode='once'>
|
|
<assertions>
|
|
<enable/>
|
|
</assertions>
|
|
<classpath>
|
|
<fileset refid='test-jars'/>
|
|
<fileset refid='desktop-jars'/>
|
|
<fileset refid='core-jars'/>
|
|
<fileset refid='api-jars'/>
|
|
<path refid='test-classes'/>
|
|
<path refid='desktop-classes'/>
|
|
<path refid='core-classes'/>
|
|
<path refid='api-classes'/>
|
|
</classpath>
|
|
<sysproperty key='java.library.path' value='../briar-desktop/libs'/>
|
|
<test name='org.briarproject.db.H2DatabaseTest'/>
|
|
</junit>
|
|
</target>
|
|
</project>
|