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;
+ }
}