Author: nextgens
Date: 2007-10-24 09:42:00 +0000 (Wed, 24 Oct 2007)
New Revision: 15520

Modified:
   trunk/freenet/src/freenet/crypt/DiffieHellman.java
Log:
Add the missing test to DiffieHellman.checkDHExponentialValidity

Modified: trunk/freenet/src/freenet/crypt/DiffieHellman.java
===================================================================
--- trunk/freenet/src/freenet/crypt/DiffieHellman.java  2007-10-24 09:26:37 UTC 
(rev 15519)
+++ trunk/freenet/src/freenet/crypt/DiffieHellman.java  2007-10-24 09:42:00 UTC 
(rev 15520)
@@ -40,7 +40,8 @@

        public static final BigInteger MIN_EXPONENTIAL_VALUE = new 
BigInteger("2").pow(24);
        public static final BigInteger MAX_EXPONENTIAL_VALUE = 
group.getP().subtract(MIN_EXPONENTIAL_VALUE);
-
+       public static final BigInteger FORBIDDEN_VALUE = 
group.getP().subtract(BigInteger.ONE);
+       
        static {
                precalcThread = new PrecalcBufferFill();
        }
@@ -174,14 +175,18 @@
                        return false;
                }

-               //TODO: Shall we test if p-1 = -1 here ?
+               // Ensure that g^x != (p-1)
+               if(FORBIDDEN_VALUE.compareTo(exponential) == 0) {
+                       Logger.error(caller, "The provided exponential is p-1 
which is unacceptable!");
+                       return false;
+               }

                // Ensure that g^x > 2^24
                if(MIN_EXPONENTIAL_VALUE.compareTo(exponential) > -1) {
                        Logger.error(caller, "The provided exponential is 
smaller than 2^24 which is unacceptable!");
                        return false;
                }
-               // Ensure that g^x < (p - 2^24)
+               // Ensure that g^x < (p-2^24)
                if(MAX_EXPONENTIAL_VALUE.compareTo(exponential) < 1) {
                        Logger.error(DiffieHellman.class, "The provided 
exponential is bigger than (p - 2^24) which is unacceptable!");
                        return false;


Reply via email to