Files
briar/briar-tests/build.xml
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

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>