Author: nextgens
Date: 2008-05-03 13:25:08 +0000 (Sat, 03 May 2008)
New Revision: 19696

Modified:
   trunk/freenet/src/freenet/client/ArchiveManager.java
   trunk/freenet/src/freenet/node/NodeClientCore.java
   trunk/freenet/src/freenet/support/io/FilenameGenerator.java
   trunk/freenet/src/freenet/support/io/PaddedEphemerallyEncryptedBucket.java
   
trunk/freenet/src/freenet/support/io/PaddedEphemerallyEncryptedBucketFactory.java
   trunk/freenet/src/freenet/support/io/PersistentTempBucketFactory.java
Log:
Some refactoring: use the same instance of MT everywhere instead of creating a 
new one

Needs testing!

Modified: trunk/freenet/src/freenet/client/ArchiveManager.java
===================================================================
--- trunk/freenet/src/freenet/client/ArchiveManager.java        2008-05-03 
11:50:20 UTC (rev 19695)
+++ trunk/freenet/src/freenet/client/ArchiveManager.java        2008-05-03 
13:25:08 UTC (rev 19696)
@@ -23,6 +23,7 @@
 import freenet.support.io.FilenameGenerator;
 import freenet.support.io.PaddedEphemerallyEncryptedBucket;
 import freenet.support.io.TempFileBucket;
+import java.util.Random;

 /**
  * Cache of recently decoded archives:
@@ -39,6 +40,7 @@
        private static boolean logMINOR;

        final RandomSource random;
+       final Random weakRandom;
        final long maxArchiveSize;
        final long maxArchivedFileSize;

@@ -72,7 +74,7 @@
         * @param cacheDir The directory in which to store cached data.
         * @param random A random source for the encryption keys used by stored 
files.
         */
-       public ArchiveManager(int maxHandlers, long maxCachedData, long 
maxArchiveSize, long maxArchivedFileSize, int maxCachedElements, RandomSource 
random, FilenameGenerator filenameGenerator) {
+       public ArchiveManager(int maxHandlers, long maxCachedData, long 
maxArchiveSize, long maxArchivedFileSize, int maxCachedElements, RandomSource 
random, Random weakRandom, FilenameGenerator filenameGenerator) {
                maxArchiveHandlers = maxHandlers;
                archiveHandlers = new LRUHashtable();
                this.maxCachedElements = maxCachedElements;
@@ -81,6 +83,7 @@
                this.maxArchiveSize = maxArchiveSize;
                this.maxArchivedFileSize = maxArchivedFileSize;
                this.random = random;
+               this.weakRandom = weakRandom;
                this.filenameGenerator = filenameGenerator;
                logMINOR = Logger.shouldLog(Logger.MINOR, this);
        }
@@ -473,7 +476,7 @@

                byte[] cipherKey = new byte[32];
                random.nextBytes(cipherKey);
-               PaddedEphemerallyEncryptedBucket encryptedBucket = new 
PaddedEphemerallyEncryptedBucket(fb, 1024, random);
+               PaddedEphemerallyEncryptedBucket encryptedBucket = new 
PaddedEphemerallyEncryptedBucket(fb, 1024, weakRandom);
                return new TempStoreElement(myFile, fb, encryptedBucket);
        }


Modified: trunk/freenet/src/freenet/node/NodeClientCore.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeClientCore.java  2008-05-03 11:50:20 UTC 
(rev 19695)
+++ trunk/freenet/src/freenet/node/NodeClientCore.java  2008-05-03 13:25:08 UTC 
(rev 19696)
@@ -190,14 +190,14 @@
                                        }
                });
                try {
-                       persistentTempBucketFactory = new 
PersistentTempBucketFactory(new 
File(nodeConfig.getString("persistentTempDir")), "freenet-temp-", random);
+                       persistentTempBucketFactory = new 
PersistentTempBucketFactory(new 
File(nodeConfig.getString("persistentTempDir")), "freenet-temp-", 
node.fastWeakRandom);
                        persistentEncryptedTempBucketFactory = new 
PersistentEncryptedTempBucketFactory(persistentTempBucketFactory);
                } catch (IOException e2) {
                        String msg = "Could not find or create persistent 
temporary directory";
                        throw new 
NodeInitException(NodeInitException.EXIT_BAD_TEMP_DIR, msg);
                }

-               tempBucketFactory = new 
PaddedEphemerallyEncryptedBucketFactory(new 
TempBucketFactory(tempFilenameGenerator), random, 1024);
+               tempBucketFactory = new 
PaddedEphemerallyEncryptedBucketFactory(new 
TempBucketFactory(tempFilenameGenerator), node.fastWeakRandom, 1024);

                // Downloads directory

@@ -272,7 +272,7 @@
                });
                
setUploadAllowedDirs(nodeConfig.getStringArr("uploadAllowedDirs"));

-               archiveManager = new ArchiveManager(MAX_ARCHIVE_HANDLERS, 
MAX_CACHED_ARCHIVE_DATA, MAX_ARCHIVE_SIZE, MAX_ARCHIVED_FILE_SIZE, 
MAX_CACHED_ELEMENTS, random, tempFilenameGenerator);
+               archiveManager = new ArchiveManager(MAX_ARCHIVE_HANDLERS, 
MAX_CACHED_ARCHIVE_DATA, MAX_ARCHIVE_SIZE, MAX_ARCHIVED_FILE_SIZE, 
MAX_CACHED_ELEMENTS, random, node.fastWeakRandom, tempFilenameGenerator);
                Logger.normal(this, "Initializing USK Manager");
                System.out.println("Initializing USK Manager");
                uskManager = new USKManager(this);

Modified: trunk/freenet/src/freenet/support/io/FilenameGenerator.java
===================================================================
--- trunk/freenet/src/freenet/support/io/FilenameGenerator.java 2008-05-03 
11:50:20 UTC (rev 19695)
+++ trunk/freenet/src/freenet/support/io/FilenameGenerator.java 2008-05-03 
13:25:08 UTC (rev 19696)
@@ -5,14 +5,14 @@

 import org.tanukisoftware.wrapper.WrapperManager;

-import freenet.crypt.RandomSource;
 import freenet.support.Fields;
 import freenet.support.Logger;
 import freenet.support.TimeUtil;
+import java.util.Random;

 public class FilenameGenerator {

-    private final RandomSource random;
+    private final Random random;
     private final String prefix;
     private final File tmpDir;

@@ -23,7 +23,7 @@
      * @param prefix
      * @throws IOException
      */
-       public FilenameGenerator(RandomSource random, boolean wipeFiles, File 
dir, String prefix) throws IOException {
+       public FilenameGenerator(Random random, boolean wipeFiles, File dir, 
String prefix) throws IOException {
                this.random = random;
                this.prefix = prefix;
                if (dir == null)

Modified: 
trunk/freenet/src/freenet/support/io/PaddedEphemerallyEncryptedBucket.java
===================================================================
--- trunk/freenet/src/freenet/support/io/PaddedEphemerallyEncryptedBucket.java  
2008-05-03 11:50:20 UTC (rev 19695)
+++ trunk/freenet/src/freenet/support/io/PaddedEphemerallyEncryptedBucket.java  
2008-05-03 13:25:08 UTC (rev 19696)
@@ -8,8 +8,6 @@
 import java.io.OutputStream;
 import java.lang.ref.SoftReference;

-import org.spaceroots.mantissa.random.MersenneTwister;
-
 import freenet.crypt.PCFBMode;
 import freenet.crypt.RandomSource;
 import freenet.crypt.UnsupportedCipherException;
@@ -18,6 +16,7 @@
 import freenet.support.Logger;
 import freenet.support.SimpleFieldSet;
 import freenet.support.api.Bucket;
+import java.util.Random;

 /**
  * A proxy Bucket which adds:
@@ -28,7 +27,7 @@

        private final Bucket bucket;
        private final int minPaddedSize;
-       private final RandomSource randomSource;
+       private final Random randomSource;
        private SoftReference /* <Rijndael> */ aesRef;
        /** The decryption key. */
        private final byte[] key;
@@ -41,10 +40,10 @@
         * @param bucket The bucket which we are proxying to. Must be empty.
         * @param pcfb The encryption mode with which to encipher/decipher the 
data.
         * @param minSize The minimum padded size of the file (after it has 
been closed).
-        * @param origRandom Hard random number generator from which to obtain 
a seed for padding.
+        * @param origRandom a week prng we will padd from.
         * @throws UnsupportedCipherException 
         */
-       public PaddedEphemerallyEncryptedBucket(Bucket bucket, int minSize, 
RandomSource origRandom) {
+       public PaddedEphemerallyEncryptedBucket(Bucket bucket, int minSize, 
Random origRandom) {
                this.randomSource = origRandom;
                this.bucket = bucket;
                if(bucket.size() != 0) throw new 
IllegalArgumentException("Bucket must be empty");

Modified: 
trunk/freenet/src/freenet/support/io/PaddedEphemerallyEncryptedBucketFactory.java
===================================================================
--- 
trunk/freenet/src/freenet/support/io/PaddedEphemerallyEncryptedBucketFactory.java
   2008-05-03 11:50:20 UTC (rev 19695)
+++ 
trunk/freenet/src/freenet/support/io/PaddedEphemerallyEncryptedBucketFactory.java
   2008-05-03 13:25:08 UTC (rev 19696)
@@ -2,9 +2,9 @@

 import java.io.IOException;

-import freenet.crypt.RandomSource;
 import freenet.support.api.Bucket;
 import freenet.support.api.BucketFactory;
+import java.util.Random;

 /**
  * Factory wrapper for PaddedEphemerallyEncryptedBucket's, which are themselves
@@ -13,10 +13,10 @@
 public class PaddedEphemerallyEncryptedBucketFactory implements BucketFactory {

        final BucketFactory baseFactory;
-       final RandomSource random;
+       final Random random;
        final int minSize;

-       public PaddedEphemerallyEncryptedBucketFactory(BucketFactory factory, 
RandomSource r, int minSize) {
+       public PaddedEphemerallyEncryptedBucketFactory(BucketFactory factory, 
Random r, int minSize) {
                baseFactory = factory;
                this.minSize = minSize;
                this.random = r;

Modified: trunk/freenet/src/freenet/support/io/PersistentTempBucketFactory.java
===================================================================
--- trunk/freenet/src/freenet/support/io/PersistentTempBucketFactory.java       
2008-05-03 11:50:20 UTC (rev 19695)
+++ trunk/freenet/src/freenet/support/io/PersistentTempBucketFactory.java       
2008-05-03 13:25:08 UTC (rev 19696)
@@ -13,6 +13,7 @@
 import freenet.support.Logger;
 import freenet.support.api.Bucket;
 import freenet.support.api.BucketFactory;
+import java.util.Random;

 /**
  * Handles persistent temp files. These are used for e.g. persistent downloads.
@@ -35,12 +36,12 @@
        private final FilenameGenerator fg;

        /** Random number generator */
-       private final RandomSource rand;
+       private final Random rand;

        /** Buckets to free */
        private final LinkedList bucketsToFree;

-       public PersistentTempBucketFactory(File dir, String prefix, 
RandomSource rand) throws IOException {
+       public PersistentTempBucketFactory(File dir, String prefix, Random 
rand) throws IOException {
                boolean logMINOR = Logger.shouldLog(Logger.MINOR, this);
                this.dir = dir;
                this.rand = rand;


Reply via email to