[freenet-cvs] r19696 - in trunk/freenet/src/freenet: client node support/io

nextgens at freenetproject.org nextgens at freenetproject.org
Sat May 3 13:25:08 UTC 2008


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;




More information about the cvs mailing list