Author: toad
Date: 2008-03-13 16:10:49 +0000 (Thu, 13 Mar 2008)
New Revision: 18508
Modified:
trunk/freenet/src/freenet/node/FNPPacketMangler.java
Log:
Fix NPE when replaying JFK(4) on anon-auth.
Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java 2008-03-13
15:51:48 UTC (rev 18507)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java 2008-03-13
16:10:49 UTC (rev 18508)
@@ -1064,7 +1064,12 @@
}
if(message4 != null) {
Logger.normal(this, "We replayed a message from the
cache (shouldn't happen often) - "+pn);
- sendAuthPacket(1, 2, 3, (byte[]) message4, pn, replyTo);
+ // We are replaying a JFK(4).
+ // Therefore if it is anon-initiator it is encrypted
with our setup key.
+ if(unknownInitiator)
+ sendAnonAuthPacket(1,2,3,setupType, (byte[])
message4, null, replyTo, crypto.anonSetupCipher);
+ else
+ sendAuthPacket(1, 2, 3, (byte[]) message4, pn,
replyTo);
return;
} else {
if(logDEBUG) Logger.debug(this, "No message4 found for
"+HexUtil.bytesToHex(authenticator)+" responderExponential
"+Fields.hashCode(responderExponential)+" initiatorExponential
"+Fields.hashCode(initiatorExponential)+" nonceResponder
"+Fields.hashCode(nonceResponder)+" nonceInitiator
"+Fields.hashCode(nonceInitiator)+" address
"+HexUtil.bytesToHex(replyTo.getAddress().getAddress()));