Bug #600

Updated by profmakx about 5 years ago

What is the point of keeping/using the in-kernel arc4

random number generator when you already have a very

good/superior IBAA/L15 random number generator.

If you need a u_int32_t quantity then simply add a

function to /sys/kern/kern_nrandom.c to produce a



Some issues with /sys/libkern/karc4random.c :

(a) If you intend to keep /sys/libkern/karc4random.c I

recommend you make a modification to it to improve

performance: Every time the karc4_random() function is

called it calls getmicrotime(), to check the time, and

it also checks the number of runs made, to see if it

should reseed itself. You can make a big performance

improvement by removing this call to getmicrotime()

and instead simply checking the number of runs to

determine when it should reseed itself.

(b) The karc4random.c file uses u_int8_t types for

arc4_i, arc4_j and arc4_t so there is no need for the

% 256 operation - another performance improvement.

(c) In arc4_init() you are throwing away 256*4 bytes

of output, when you only need to throw away the first

256 bytes of output.


R Carey.


Yahoo! Answers - Got a question? Someone out there knows the answer. Try it