Author: kryptos
Date: 2007-07-21 20:48:06 +0000 (Sat, 21 Jul 2007)
New Revision: 14252
Modified:
branches/freenet-jfk/src/freenet/node/FNPPacketMangler.java
Log:
Message2 updated:Grpinfo modifications
Modified: branches/freenet-jfk/src/freenet/node/FNPPacketMangler.java
===================================================================
--- branches/freenet-jfk/src/freenet/node/FNPPacketMangler.java 2007-07-21
20:33:01 UTC (rev 14251)
+++ branches/freenet-jfk/src/freenet/node/FNPPacketMangler.java 2007-07-21
20:48:06 UTC (rev 14252)
@@ -336,7 +336,10 @@
message2(pn,payload,1);
}
else if(packetType==2){
- // Initiator echoes the data sent by the responder
+ /* Initiator echoes the data sent by the responder.These
messages are
+ * cached by the Responder.Receiving a duplicate message
simply causes
+ * the responder to Re-transmit the corresponding
message4
+ */
}
else if(packetType==3){
@@ -345,6 +348,7 @@
* using the same keys as in the previous message
*/
}
+ }
}
/*
* Initiator Method:Message1
@@ -400,7 +404,7 @@
HashMap grpInfo=new HashMap();
BufferedReader Source = new BufferedReader(new
FileReader(fileName ));
String input;
- //grpInfo method to be modified
+ /*grpInfo method to be modified
while ((input = Source.readLine()) != null) {
grpInfo.put(Object key,Object value);
}
@@ -411,12 +415,14 @@
Object key = e.getKey();
Object value = e.getValue();
}
-
+ */
MessageDigest md=SHA256.getMessageDigest();
+ byte[] DHExp=dh.getHisExponential().toByteArray();
md.update(dh.getHisExponential().toByteArray());
md.update(Nr);
md.update(Ni);
byte[] hash=md.digest();
+ /*
long totalRSize=0;
long totalSSize=0;
int maxRSize=0;
@@ -429,12 +435,22 @@
sSize = sSize / 8 + (sSize % 8 == 0 ? 0 : 1);
totalSSize += sSize;
if(sSize > maxSSize) maxSSize = sSize;
- //byte signData=new byte[maxSSize+maxRSize+1];
-
-
-
-
- }
+ */
+ int grpLength=grpInfo.size();
+ byte signData=new byte[grpLength+DHExp.length+1];
+ signatureMessage(signData);
+ byte[] unVerifiedData=new
byte[Ni.length+Nr.length+DHExp.length+1];
+ System.arraycopy(Ni,0,unVerifiedData,0,Ni.length);
+ System.arraycopy(Nr,0,unVerifiedData,Ni.length+1,Nr.length);
+
System.arraycopy(DHExp,0,unVerifiedData,Ni.length+nr.length+1,DHExp.length);
+ //Calculate the Hash of the Concatenated data(Responder
exponentials and nonces
+ //using a key that will be private to the responder
+ HKrGenerator message2Key=new HKrGenerator(20);
+ hkr=message2Key.getNewHKr();
+ HMAC s=new HMAC(SHA1.getInstance());
+ byte[] hashedMessage=s.mac(hkr,unVerifiedData,20);
+ byte[] Message2=new
byte[hashedMessage.length+unVerifiedData.length+signData.length+1];
+}
/*
* Send Message1 packet
* @param version
@@ -444,7 +460,7 @@
* @param The peerNode we are talking to
* @param The peer to which we need to send the packet
*/
- private void sendMessage1Packet(int version,int negType,int phase,byte[]
data,PeerNode pn,Peer replyTo)
+ private void sendMessage1or3Packet(int version,int negType,int
phase,byte[] data,PeerNode pn,Peer replyTo)
{
long now = System.currentTimeMillis();
long delta = now - pn.lastSentPacketTime();