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);
+ }
}
}