/** * May block up to 10 seconds or forever */ public FortunaRandomSource(I2PAppContext context) { super(context); _fortuna = new AsyncFortunaStandalone(context); byte seed[] = new byte[1024]; // may block for 10 seconds if (initSeed(seed)) { _fortuna.seed(seed); } else { // may block forever //SecureRandom sr = new SecureRandom(); // SecureRandom already failed in initSeed(), so try Random Random sr = new Random(); sr.nextBytes(seed); _fortuna.seed(seed); } _fortuna.startup(); // kickstart it _fortuna.nextBytes(seed); _haveNextGaussian = false; }