Author: nextgens
Date: 2007-10-22 11:28:56 +0000 (Mon, 22 Oct 2007)
New Revision: 15472

Modified:
   trunk/freenet/src/freenet/node/FNPPacketMangler.java
Log:
JFK:
        Renew DH Exponentials once every 15mins if we aren't connected yet.

Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java        2007-10-22 
11:22:47 UTC (rev 15471)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java        2007-10-22 
11:28:56 UTC (rev 15472)
@@ -508,8 +508,11 @@
         */
        private void sendJFKMessage1(PeerNode pn, Peer replyTo) {
                if(logMINOR) Logger.minor(this, "Sending a JFK(1) message to 
"+pn);
-               if(pn.jfkContext == null) // get a new DH exponents only if 
needed
+               final long now = System.currentTimeMillis();
+               if((pn.jfkContext == null) || ((pn.jfkContextLifetime + 
15*60*1000) < now)) {
                        pn.jfkContext = getLightDiffieHellmanContext();
+                       pn.jfkContextLifetime = now;
+               }
                int offset = 0;
                byte[] myExponential = 
stripBigIntegerToNetworkFormat(pn.jfkContext.myExponential);
                byte[] nonce = new byte[NONCE_SIZE];
@@ -538,7 +541,11 @@
         */
        private void sendJFKMessage2(byte[] nonceInitator, byte[] 
hisExponential, PeerNode pn, Peer replyTo) {
                if(logMINOR) Logger.minor(this, "Sending a JFK(2) message to 
"+pn);
-               pn.jfkContext = getLightDiffieHellmanContext();
+               final long now = System.currentTimeMillis();
+               if((pn.jfkContext == null) || ((pn.jfkContextLifetime + 
15*60*1000) < now)) {
+                       pn.jfkContext = getLightDiffieHellmanContext();
+                       pn.jfkContextLifetime = now;
+               }
                // g^r
                byte[] myExponential = 
stripBigIntegerToNetworkFormat(pn.jfkContext.myExponential);
                // Nr


Reply via email to