[freenet-cvs] r15461 - trunk/freenet/src/freenet/node

toad at freenetproject.org toad at freenetproject.org
Sat Oct 20 20:13:41 UTC 2007


Author: toad
Date: 2007-10-20 20:13:41 +0000 (Sat, 20 Oct 2007)
New Revision: 15461

Modified:
   trunk/freenet/src/freenet/node/FNPPacketMangler.java
   trunk/freenet/src/freenet/node/PeerNode.java
Log:
Move jfkNoncesSent back to PeerNode.
This prevents leaking of nonces relating to peers we no longer care about.
It will also make preventing leaks more generally easier.

Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java	2007-10-20 20:09:27 UTC (rev 15460)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java	2007-10-20 20:13:41 UTC (rev 15461)
@@ -122,11 +122,6 @@
 
 	final int fullHeadersLengthMinimum;
 	final int fullHeadersLengthOneMessage;
-	/**
-	 *  The initiator has to ensure that nonces send back by the
-	 *  responder in message2 match what was chosen in message 1
-	 */
-	protected final HashMap jfkNoncesSent = new HashMap();
 
 
 	public FNPPacketMangler(Node node, NodeCrypto crypt, PacketSocketHandler sock) {
@@ -517,8 +512,8 @@
 		byte[] nonce = new byte[NONCE_SIZE];
 		node.random.nextBytes(nonce);
 		
-		synchronized (jfkNoncesSent) {
-			jfkNoncesSent.put(replyTo, nonce);
+		synchronized (pn) {
+			pn.jfkNoncesSent.put(replyTo, nonce);
 		}
 		
 		byte[] message1 = new byte[NONCE_SIZE+DiffieHellman.modulusLengthInBytes()];
@@ -656,8 +651,8 @@
 		
 		// sanity check
 		byte[] myNi = null;
-		synchronized (jfkNoncesSent) {
-			myNi = (byte[]) jfkNoncesSent.get(replyTo);
+		synchronized (pn) {
+			myNi = (byte[]) pn.jfkNoncesSent.get(replyTo);
 		}
 		// We don't except such a message;
 		if(myNi == null) {
@@ -984,8 +979,8 @@
 		pn.jfkKa = null;
 		pn.jfkKe = null;
 		pn.jfkKs = null;
-		synchronized (jfkNoncesSent) {
-			jfkNoncesSent.remove(pn);
+		synchronized (pn) {
+			pn.jfkNoncesSent.remove(replyTo);
 		}
 		
 		final long t2=System.currentTimeMillis();

Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java	2007-10-20 20:09:27 UTC (rev 15460)
+++ trunk/freenet/src/freenet/node/PeerNode.java	2007-10-20 20:13:41 UTC (rev 15461)
@@ -11,6 +11,7 @@
 import java.net.MalformedURLException;
 import java.net.UnknownHostException;
 import java.util.Arrays;
+import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.LinkedList;
@@ -313,6 +314,13 @@
 	/** The node is being disconnected, but it may take a while. */
 	private boolean disconnecting;
 	
+	/**
+	 * For FNP link setup:
+	 *  The initiator has to ensure that nonces send back by the
+	 *  responder in message2 match what was chosen in message 1
+	 */
+	protected final HashMap jfkNoncesSent = new HashMap();
+	
     private static boolean logMINOR;
     
     /**




More information about the cvs mailing list