[freenet-cvs] r14629 - branches/freenet-jfk/src/freenet/node

kryptos at freenetproject.org kryptos at freenetproject.org
Sat Aug 11 19:42:15 UTC 2007


Author: kryptos
Date: 2007-08-11 19:42:15 +0000 (Sat, 11 Aug 2007)
New Revision: 14629

Modified:
   branches/freenet-jfk/src/freenet/node/FNPPacketMangler.java
Log:
Message 4 and more tweaking to be done before it can be added to the trunk: Wiki article on JFK updated

Modified: branches/freenet-jfk/src/freenet/node/FNPPacketMangler.java
===================================================================
--- branches/freenet-jfk/src/freenet/node/FNPPacketMangler.java	2007-08-11 19:32:54 UTC (rev 14628)
+++ branches/freenet-jfk/src/freenet/node/FNPPacketMangler.java	2007-08-11 19:42:15 UTC (rev 14629)
@@ -437,6 +437,17 @@
 
 		
 }
+   /*
+    * Initiator Method:Message3
+    * Process Message3
+    * Send the Initiator nonce,Responder nonce and DiffieHellman Exponential of the responder
+    * and initiator in the clear.
+    * Compute a signed copy of his own exponential and grpInfo and encrypt it using a shared key
+    * which is derived from DHExponentials and the nonces
+    * @param The packet phase number
+    * @param The peerNode we are talking to
+    * @param Payload
+    */
     private void ProcessMessage3(PeerNode pn,byte[] payload,int phase,BlockCipher cipher)			
     {
 	PCFBMode pcfb = PCFBMode.create(cipher);
@@ -474,7 +485,25 @@
         System.arraycopy(s, 0, output, count, s.length);
         count += s.length;
         pcfb.blockEncipher(output, 0, output.length);
-    }		
+    }
+    /*
+     * Responder Method:Message4
+     * Process Message4
+     * Send the Initiator nonce,Responder nonce and DiffieHellman Exponential of the responder
+     * and grpInfo in the clear.
+     * Send a signed copy of his own exponential and grpInfo.
+     * Send an authenticator which is a hash of Ni,Nr,g^r calculated over the transient key HKr
+     * @param The packet phase number
+     * @param The peerNode we are talking to
+     * @param Payload
+     */
+ 	
+    private void ProcessMessage4(PeerNode pn,byte[] payload,int phase,BlockCipher cipher)
+    {
+	//Responder keeps a copy of recently received message3 and corresponding message4
+        //Receiving a duplicated message simply causes the responder to retransmit the
+	//corresponding message4 without creating a new state
+    }	
 			
     /*
      * Send Message1 packet
@@ -506,6 +535,37 @@
 		
     }
     /*
+     * Send Message2 packet
+     * @param version
+     * @param negType
+     * @param The packet phase number
+     * @param Concatenated data
+     * @param The peerNode we are talking to
+     * @param The peer to which we need to send the packet
+     */
+
+    private void sendMessage2or4Packet(int version,int negType,int phase,byte[] data,PeerNode pn,Peer replyTo)
+    {
+                long now = System.currentTimeMillis();
+                long delta = now - pn.lastSentPacketTime();
+                byte[] output = new byte[data.length+3];
+                output[0] = (byte) version;
+                output[1] = (byte) negType;
+                output[2] = (byte) phase;
+                System.arraycopy(data, 0, output, 3, data.length);
+                if(logMINOR) Logger.minor(this, "Sending auth packet for "+pn.getPeer()+" (phase="+phase+", ver="+version+", nt="+negType+") (last packet sent "+TimeUtil.formatTime(delta, 2, true)+" ago) to "+replyTo+" data.length="+data.length);
+                try
+                {
+                        sendPacket(data,replyTo,pn,0);
+                }catch(LocalAddressException e)
+                {
+                        Logger.error(this, "Tried to send auth packet to local address: "+replyTo+" for "+pn);
+                }
+
+
+    }
+
+    /*
      * Signature of the message using DSA
      * Information on what are the encryption and authentication algorithms used is sent in
      * message2 via grpInfo




More information about the cvs mailing list