Module Name: src Committed By: tls Date: Tue Apr 17 02:50:39 UTC 2012
Modified Files: src/share/man/man4: rnd.4 src/sys/dev: rndpseudo.c src/sys/kern: kern_rndpool.c kern_rndq.c subr_cprng.c src/sys/sys: cprng.h rnd.h Log Message: Address multiple problems with rnd(4)/cprng(9): 1) Add a per-cpu CPRNG to handle short reads from /dev/urandom so that programs like perl don't drain the entropy pool dry by repeatedly opening, reading 4 bytes, closing. 2) Really fix the locking around reseeds and destroys. 3) Fix the opportunistic-reseed strategy so it actually works, reseeding existing RNGs once each (as they are used, so idle RNGs don't get reseeded) until the pool is half empty or newly full again. To generate a diff of this commit: cvs rdiff -u -r1.18 -r1.19 src/share/man/man4/rnd.4 cvs rdiff -u -r1.7 -r1.8 src/sys/dev/rndpseudo.c cvs rdiff -u -r1.1 -r1.2 src/sys/kern/kern_rndpool.c cvs rdiff -u -r1.2 -r1.3 src/sys/kern/kern_rndq.c cvs rdiff -u -r1.7 -r1.8 src/sys/kern/subr_cprng.c cvs rdiff -u -r1.4 -r1.5 src/sys/sys/cprng.h cvs rdiff -u -r1.30 -r1.31 src/sys/sys/rnd.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.