Author: kryptos
Date: 2007-09-23 08:04:32 +0000 (Sun, 23 Sep 2007)
New Revision: 15281

Modified:
   branches/freenet-jfk/src/freenet/node/FNPPacketMangler.java
Log:
Some updates to JFK, FIXME's todo

Modified: branches/freenet-jfk/src/freenet/node/FNPPacketMangler.java
===================================================================
--- branches/freenet-jfk/src/freenet/node/FNPPacketMangler.java 2007-09-22 
21:10:05 UTC (rev 15280)
+++ branches/freenet-jfk/src/freenet/node/FNPPacketMangler.java 2007-09-23 
08:04:32 UTC (rev 15281)
@@ -71,8 +71,7 @@
         */

        private final HashMap authenticatorCache;
-        private final List buffer;
-       final eKey encryptionKey;
+               final eKey encryptionKey;

        /** We renew it on each *successful* run of the protocol (the spec. 
says "once a while") - access is synchronized! */
        private DiffieHellmanLightContext currentDHContext = null;
@@ -117,9 +116,7 @@
                fnpTimingSource = new EntropySource();
                myPacketDataSource = new EntropySource();
                authenticatorCache = new HashMap();
-                buffer = new ArrayList();
-               encryptionKey = new eKey();
-                       
+                       encryptionKey = new eKey();
                fullHeadersLengthMinimum = HEADERS_LENGTH_MINIMUM + 
sock.getHeadersLength();
                fullHeadersLengthOneMessage = HEADERS_LENGTH_ONE_MESSAGE + 
sock.getHeadersLength();
                logMINOR = Logger.shouldLog(Logger.MINOR, this);
@@ -843,14 +840,7 @@
                byte[] iv=new byte[pk.lengthIV()];
                 node.random.nextBytes(iv);
                byte[] idI = new byte[0];
-                // Buffer of Ni,Nr,g^i,g^r,IDi
-                byte[] buf =  new byte[unVerifiedData.length+idI.length];
-                System.arraycopy(unVerifiedData,0,buf,0,unVerifiedData.length);
-                System.arraycopy(idI,0,buf,unVerifiedData.length,idI.length);
-                // Store buf in a List for use in JFK(4)
-                synchronized(buffer){
-                    buffer.add(buf);
-                }
+                
                 int encryptedDataLength = iv.length + idI.length + r.length + 
s.length + 2;
                byte[] encryptedData = new byte[encryptedDataLength];
                System.arraycopy(iv, 0, encryptedData, 0, iv.length);
@@ -909,23 +899,15 @@
                DSASignature remoteSignature = new DSASignature(new 
NativeBigInteger(1,r), new NativeBigInteger(1,s));
                if(logMINOR)
                     Logger.minor(this, "Remote sent us the following sig 
:"+remoteSignature.toLongString());
-               // Since we need the params only for signature verification, we 
can immediately remove them from the List
-                // Thus, at any point of time, the list will only contain only 
one entry
+               // FIXME: How do we save state?
                 byte[] locallyExpectedExponentials = new 
byte[Node.SIGNATURE_PARAMETER_LENGTH*2];
-                synchronized(buffer){
-                    try{
-                        locallyExpectedExponentials = 
SHA256.digest(getBytes(buffer.get(0)));
-                    }catch(IOException e){
-                        Logger.error(this,"Error getting signData in bytes");
-                    }
-                }
-                buffer.remove(0);
+                
                if(!DSA.verify(pn.peerPubKey, remoteSignature, new 
NativeBigInteger(1, locallyExpectedExponentials), false)) {
                        Logger.error(this, "The signature verification has 
failed!!");
                        return;
                }          
-                
-                // FIXME: JFK handshake completion?
+                // FIXME: When do we send the Handshake?
+                // FIXME: What about noderef?
         }
        /*
          * FOrmat:
@@ -961,7 +943,7 @@
                System.arraycopy(s, 0, message4, count, s.length);
                count += s.length;
                pk.blockEncipher(message4, 0, message4Length);
-                // FIXME: How to get completed handshake?
+                sendAuthPacket(1,2,3,message4,pn,replyTo);
        }

        /**
@@ -984,7 +966,6 @@
                byte[] data = new byte[myRef.length + 8];
                System.arraycopy(Fields.longToBytes(node.bootID), 0, data, 0, 
8);
                System.arraycopy(myRef, 0, data, 8, myRef.length);
-
                byte[] myExp = ctx.getOurExponential().toByteArray();
                byte[] hisExp = ctx.getHisExponential().toByteArray();



Reply via email to