Module Name: src Committed By: tls Date: Thu Jul 17 14:03:33 UTC 2014
Modified Files: src/sbin/rndctl [tls-earlyentropy]: rndctl.c src/sys/conf [tls-earlyentropy]: files src/sys/crypto/arc4 [tls-earlyentropy]: arc4.c arc4.h files.arc4 src/sys/dev [tls-earlyentropy]: rndpseudo.c src/sys/kern [tls-earlyentropy]: init_main.c kern_rndq.c subr_cprng.c subr_prf.c src/sys/lib/libkern [tls-earlyentropy]: Makefile.libkern src/sys/nfs [tls-earlyentropy]: nfs_subs.c src/sys/sys [tls-earlyentropy]: cprng.h rnd.h Added Files: src/sys/crypto/ccrand [tls-earlyentropy]: ccrand.h ccrand2.c ccrand32.c ccrand64.c ccrand_bytes.c ccrand_gen16.c ccrand_reseed.c ccrand_seed.c ccrand_seed32.c ccrand_seed64.c ccrand_use.c ccrand_var.h ccrand_words.c ccrandn.c files.ccrand Removed Files: src/sys/lib/libkern [tls-earlyentropy]: arc4random.c Log Message: Adjustments to the "earlyentropy" branch in response to the various discussions beginning with my initial proposal http://mail-index.netbsd.org/tech-kern/2014/04/08/msg016876.html and particularly the long discussion of cprng_fast() performance (e.g. https://mail-index.netbsd.org/tech-crypto/2014/04/21/msg000642.html). In particular: * Per-CPU, lockless cprng_fast replacement using Dennis Ferguson's "ccrand" implementation of ChaCha8. * libkern arc4random() is gone, gone, gone. * Entropy estimator reverted to 32-bit recordkeeping and timestamps per Dennis' comments and analysis. * LZF entropy estimator removed: it required a great deal of state, and rejected only truly pathological input. I have not yet reverted the changes that provide LZF in the kernel as generic functionality; I will likely revert those changes prior to any merge of this branch to HEAD. To generate a diff of this commit: cvs rdiff -u -r1.27.2.1 -r1.27.2.2 src/sbin/rndctl/rndctl.c cvs rdiff -u -r1.1090 -r1.1090.2.1 src/sys/conf/files cvs rdiff -u -r1.6 -r1.6.136.1 src/sys/crypto/arc4/arc4.c cvs rdiff -u -r1.4 -r1.4.136.1 src/sys/crypto/arc4/arc4.h cvs rdiff -u -r1.1 -r1.1.172.1 src/sys/crypto/arc4/files.arc4 cvs rdiff -u -r0 -r1.1.2.1 src/sys/crypto/ccrand/ccrand.h \ src/sys/crypto/ccrand/ccrand2.c src/sys/crypto/ccrand/ccrand32.c \ src/sys/crypto/ccrand/ccrand64.c src/sys/crypto/ccrand/ccrand_bytes.c \ src/sys/crypto/ccrand/ccrand_gen16.c \ src/sys/crypto/ccrand/ccrand_reseed.c src/sys/crypto/ccrand/ccrand_seed.c \ src/sys/crypto/ccrand/ccrand_seed32.c \ src/sys/crypto/ccrand/ccrand_seed64.c src/sys/crypto/ccrand/ccrand_use.c \ src/sys/crypto/ccrand/ccrand_var.h src/sys/crypto/ccrand/ccrand_words.c \ src/sys/crypto/ccrand/ccrandn.c src/sys/crypto/ccrand/files.ccrand cvs rdiff -u -r1.19.2.1 -r1.19.2.2 src/sys/dev/rndpseudo.c cvs rdiff -u -r1.454.2.1 -r1.454.2.2 src/sys/kern/init_main.c cvs rdiff -u -r1.23.2.3 -r1.23.2.4 src/sys/kern/kern_rndq.c cvs rdiff -u -r1.23 -r1.23.2.1 src/sys/kern/subr_cprng.c cvs rdiff -u -r1.153.2.2 -r1.153.2.3 src/sys/kern/subr_prf.c cvs rdiff -u -r1.32.2.1 -r1.32.2.2 src/sys/lib/libkern/Makefile.libkern cvs rdiff -u -r1.35 -r0 src/sys/lib/libkern/arc4random.c cvs rdiff -u -r1.225 -r1.225.2.1 src/sys/nfs/nfs_subs.c cvs rdiff -u -r1.9 -r1.9.2.1 src/sys/sys/cprng.h cvs rdiff -u -r1.40.2.1 -r1.40.2.2 src/sys/sys/rnd.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.