Author: toad
Date: 2008-09-25 22:03:53 +0000 (Thu, 25 Sep 2008)
New Revision: 22838

Modified:
   trunk/freenet/src/freenet/store/saltedhash/SaltedHashFreenetStore.java
Log:
Use a MersenneTwister, not Yarrow! Reset it every 1GB with 64 bytes from Yarrow.


Modified: trunk/freenet/src/freenet/store/saltedhash/SaltedHashFreenetStore.java
===================================================================
--- trunk/freenet/src/freenet/store/saltedhash/SaltedHashFreenetStore.java      
2008-09-25 17:25:17 UTC (rev 22837)
+++ trunk/freenet/src/freenet/store/saltedhash/SaltedHashFreenetStore.java      
2008-09-25 22:03:53 UTC (rev 22838)
@@ -26,6 +26,7 @@
 import java.util.concurrent.locks.ReentrantLock;
 import java.util.concurrent.locks.ReentrantReadWriteLock;

+import org.spaceroots.mantissa.random.MersenneTwister;
 import org.tanukisoftware.wrapper.WrapperManager;

 import freenet.keys.KeyVerifyException;
@@ -808,11 +809,18 @@
                                        metaFC.write(bf, oldMetaLen);
                                        oldMetaLen += 4096;
                                }
+                               byte[] seed = new byte[64];
+                               random.nextBytes(seed);
+                               Random mt = new MersenneTwister(seed);
                                while (oldHdLen < newHdLen) {
-                                       random.nextBytes(b);
+                                       mt.nextBytes(b);
                                        bf.rewind();
                                        hdFC.write(bf, oldHdLen);
                                        oldHdLen += 4096;
+                                       if(oldHdLen % (1024*1024*1024L) == 0) {
+                                               random.nextBytes(seed);
+                                               mt = new MersenneTwister(seed);
+                                       }
                                }
                        }



Reply via email to