Author: toad
Date: 2007-12-15 16:35:35 +0000 (Sat, 15 Dec 2007)
New Revision: 16578

Modified:
   trunk/freenet/src/freenet/node/FNPPacketMangler.java
   trunk/freenet/src/freenet/node/NodeCrypto.java
Log:
Use the correct identity.
This is a bit of a mess, any suggestions for a cleaner way to get JFK(3) under 
the limit would be welcome.

Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java        2007-12-15 
16:24:48 UTC (rev 16577)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java        2007-12-15 
16:35:35 UTC (rev 16578)
@@ -1270,8 +1270,9 @@
                byte[] locallyGeneratedText = new byte[NONCE_SIZE * 2 + 
DiffieHellman.modulusLengthInBytes() * 2 + crypto.myIdentity.length + 8 
/*bootID*/ + hisRef.length + pn.jfkMyRef.length];
                int bufferOffset = NONCE_SIZE * 2 + 
DiffieHellman.modulusLengthInBytes()*2;
                System.arraycopy(jfkBuffer, 0, locallyGeneratedText, 0, 
bufferOffset);
-               System.arraycopy(crypto.myIdentity, 0, locallyGeneratedText, 
bufferOffset, crypto.myIdentity.length);
-               bufferOffset += crypto.myIdentity.length;
+               byte[] identity = crypto.getIdentity(unknownInitiator);
+               System.arraycopy(identity, 0, locallyGeneratedText, 
bufferOffset, identity.length);
+               bufferOffset += identity.length;
                // bootID
                System.arraycopy(data, 0, locallyGeneratedText, bufferOffset, 
data.length - pn.jfkMyRef.length);
                bufferOffset += data.length - pn.jfkMyRef.length;

Modified: trunk/freenet/src/freenet/node/NodeCrypto.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeCrypto.java      2007-12-15 16:24:48 UTC 
(rev 16577)
+++ trunk/freenet/src/freenet/node/NodeCrypto.java      2007-12-15 16:35:35 UTC 
(rev 16578)
@@ -486,4 +486,16 @@
        void setPortForwardingBroken() {
                this.socket.getAddressTracker().setBroken();
        }
+
+       /**
+        * Get my identity.
+        * @param unknownInitiator Unknown-initiator connections use the hash 
of the pubkey as the identity to save space
+        * in packets 3 and 4.
+        */
+       public byte[] getIdentity(boolean unknownInitiator) {
+               if(unknownInitiator)
+                       return this.pubKey.asBytesHash();
+               else
+                       return myIdentity;
+       }
 }


Reply via email to