> > Where do we invent entropy from when the kernel has only > > been running for 0.01 of a second? > > O.K. where do you need ramdom bytes during that state of the kernel? > All locations where arc4random* is called in the kernel are these:
[list of 16] Unfortunately it looks like you missed a hundred or more. > The rest of the calls (to the level I checked), will need at least the > root filesystem to load some config data and then init some stuff > (i.e. WEP key generation, etc.). No, there is much more than that. Processes get started and initialize their libc-based prng's, as well as other state, including address space randomization, stack biasing, etc etc. > So, until the filesystem is mounted, there is no need for arc4random() > in the kernel. Totally false. > After the filesystem has been mounted the entropy data > will be loaded from the file. If this is true. Where is the need for > the time value in arc4_stir()?? You must not be reading the same code I am. > Maybe I'm wrong. If so, please direct me to the code that needs > arc4random() before the filesystem has been mounted Your approach is wrong. > I did not say that. I said, that XORing the time value with the data > of get_random_bytes() is probably sufficient and that MD5 would not be > required. The MD5 is required.