Re: /dev/random vs. /dev/urandom

Paulo Marques
2005-01-07T19:25:52Z

Ron Peterson wrote:
> When I compile and run the code below, the string of octal characters
> generated by reading /dev/random contains long strings of zeroes. I was
> under the impression that /dev/random is "more random" than
> /dev/urandom, and will block when it runs out of entropy until it
> gathers more. It's only when RAND_LEN is on the largish side that these
> strings of zeroes appear.
>
>[...]
> read( fd, dat, RAND_LEN );
> for( i = 0; i < RAND_LEN; i++ ) {
> dat[i] = (dat[i] & 0x07) + '0';

This is wrong. You must check the return value of read to know how many
bytes have you actually gathered, instead of assuming RAND_LEN...

--
Paulo Marques - www.grupopie.com

"A journey of a thousand miles begins with a single step."
Lao-tzu, The Way of Lao-tzu