From 8afe7c261f4cb03d38d2cbe9e894a3de223b5dc0 Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Sun, 27 Jan 2013 16:18:56 +0000 Subject: [PATCH] * RandomSource: Seed from SecureRandom too --- core/java/src/net/i2p/util/RandomSource.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core/java/src/net/i2p/util/RandomSource.java b/core/java/src/net/i2p/util/RandomSource.java index 4e0fe26560..408af8f7ba 100644 --- a/core/java/src/net/i2p/util/RandomSource.java +++ b/core/java/src/net/i2p/util/RandomSource.java @@ -13,6 +13,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; +import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import net.i2p.I2PAppContext; @@ -170,9 +171,14 @@ public class RandomSource extends SecureRandom implements EntropyHarvester { } public final boolean initSeed(byte buf[]) { + boolean ok = false; + try { + SecureRandom.getInstance("SHA1PRNG").nextBytes(buf); + ok = true; + } catch (NoSuchAlgorithmException e) {} // why urandom? because /dev/random blocks, and there are arguments // suggesting such blockages are largely meaningless - boolean ok = seedFromFile(new File("/dev/urandom"), buf); + ok = seedFromFile(new File("/dev/urandom"), buf) || ok; // we merge (XOR) in the data from /dev/urandom with our own seedfile File localFile = new File(_context.getConfigDir(), SEEDFILE); ok = seedFromFile(localFile, buf) || ok; -- GitLab