From 11ea898baba46035149ddf42cab240693c8bce5e Mon Sep 17 00:00:00 2001
From: akwizgran <michael@briarproject.org>
Date: Fri, 2 Nov 2012 12:25:13 +0000
Subject: [PATCH] Erase the tag key after use.

---
 src/build.xml                                 | 40 +++++++++----------
 .../TransportConnectionRecogniser.java        |  3 +-
 2 files changed, 22 insertions(+), 21 deletions(-)

diff --git a/src/build.xml b/src/build.xml
index 95938ff1fa..516f39f60a 100644
--- a/src/build.xml
+++ b/src/build.xml
@@ -1,25 +1,25 @@
 <project name='prototype' default='compile'>
-    <fileset id='prototype-jars' dir='../libs'>
-        <include name='*.jar'/>
-    </fileset>
-    <path id='android-jar'>
-        <pathelement location='../android.jar'/>
-    </path>
-    <path id='prototype-classes'>
-        <pathelement location='../build'/>
-    </path>
-    <target name='clean'>
-        <delete dir='../build'/>
-    </target>
-    <target name='compile'>
-        <mkdir dir='../build'/>
-        <javac srcdir='net/sf/briar' destdir='../build' source='1.5'
-            includeantruntime='false' debug='off'>
-            <classpath>
+	<fileset id='prototype-jars' dir='../libs'>
+		<include name='*.jar'/>
+	</fileset>
+	<path id='android-jar'>
+		<pathelement location='../android.jar'/>
+	</path>
+	<path id='prototype-classes'>
+		<pathelement location='../build'/>
+	</path>
+	<target name='clean'>
+		<delete dir='../build'/>
+	</target>
+	<target name='compile'>
+		<mkdir dir='../build'/>
+		<javac srcdir='net/sf/briar' destdir='../build' source='1.5'
+			includeantruntime='false' debug='off'>
+			<classpath>
 				<fileset refid='prototype-jars'/>
 				<path refid='android-jar'/>
 				<path refid='prototype-classes'/>
-            </classpath>
-        </javac>
-    </target>
+			</classpath>
+		</javac>
+	</target>
 </project>
diff --git a/src/net/sf/briar/transport/TransportConnectionRecogniser.java b/src/net/sf/briar/transport/TransportConnectionRecogniser.java
index ae54729a8a..079f9e09e1 100644
--- a/src/net/sf/briar/transport/TransportConnectionRecogniser.java
+++ b/src/net/sf/briar/transport/TransportConnectionRecogniser.java
@@ -55,7 +55,7 @@ class TransportConnectionRecogniser {
 		for(long connection1 : window.setSeen(connection)) {
 			byte[] tag1 = new byte[TAG_LENGTH];
 			crypto.encodeTag(tag1, cipher, key, connection1);
-			if(connection1 <= connection) {
+			if(connection1 < connection) {
 				TagContext old = tagMap.remove(new Bytes(tag1));
 				assert old != null;
 				ByteUtils.erase(old.context.getSecret());
@@ -95,6 +95,7 @@ class TransportConnectionRecogniser {
 			TagContext old = tagMap.put(new Bytes(tag), tctx);
 			assert old == null;
 		}
+		key.erase();
 		// Create a removal context to remove the window later
 		RemovalContext rctx = new RemovalContext(window, secret, alice);
 		removalMap.put(new RemovalKey(contactId, period), rctx);
-- 
GitLab