aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/random
Commit message (Collapse)AuthorAgeFilesLines
* On stable/8 and stable/9, disable hardware random number generatorsXin LI2014-01-141-2/+2
| | | | | | | | | | by default. This is a direct commit to stable/ branches because HEAD and stable/10 have superior implementation of random device. Approved by: so Notes: svn path=/stable/9/; revision=260644
* MFC r256157:Dimitry Andric2013-10-261-2/+2
| | | | | | | | | | | | Now our binutils's assembler supports the Intel Random Number Generator extensions, we can change the .byte directives in sys/dev/random/ivy.c to plain 'rdrand' mnemonics. This already worked for clang users, but now it will also work for gcc users. Approved by: so (des) Notes: svn path=/stable/9/; revision=257156
* MFC r249631Andrey A. Chernov2013-04-261-0/+2
| | | | | | | | | | Attempt to mitigate poor initialization of arc4 by one-shot reinitialization from yarrow right after good entropy is harvested. Approved by: secteam (delphij) Notes: svn path=/stable/9/; revision=249915
* MFC r247334:Xin LI2013-03-011-1/+1
| | | | | | | | | | | | Correct a typo introduced in r153575, which gives inverted logic when handling blocking semantics when seeding. PR: kern/143298 Submitted by: James Juran <james juran baesystems com> Reviewed by: markm Notes: svn path=/stable/9/; revision=247511
* MFC r240135:Konstantin Belousov2012-09-264-32/+156
| | | | | | | | | | Add support for new Intel on-CPU Bull Mountain random number generator. MFC r240455: Rename the IVY_RNG option to RDRAND_RNG. Notes: svn path=/stable/9/; revision=240950
* MFC: r229887Jung-uk Kim2012-02-231-2/+2
| | | | | | | Enable hardware RNG for VIA Nano processors. Notes: svn path=/stable/9/; revision=232013
* MFC r230426:Konstantin Belousov2012-02-211-3/+6
| | | | | | | | | | | | Add support for the extended FPU states on amd64, both for native 64bit and 32bit ABIs. As a side-effect, it enables AVX on capable CPUs. MFC r230765: Synchronize the struct sigcontext definitions on x86 with mcontext_t. Notes: svn path=/stable/9/; revision=231979
* Fix typos - remove duplicate "the".Rebecca Cran2011-02-211-1/+1
| | | | | | | | | PR: bin/154928 Submitted by: Eitan Adler <lists at eitanadler.com> MFC after: 3 days Notes: svn path=/head/; revision=218909
* Finish r210923, 210926. Mark some devices as eternal.Konstantin Belousov2011-01-041-2/+2
| | | | | | | MFC after: 2 weeks Notes: svn path=/head/; revision=216952
* Use the fpu_kern_enter() interface to properly separate usermode FPUKonstantin Belousov2010-06-051-1/+11
| | | | | | | | | | | | | | | | | context from in-kernel execution of padlock instructions and to handle spurious FPUDNA exceptions that sometime are raised when doing padlock calculations. Globally mark crypto(9) kthread as using FPU. Reviewed by: pjd Hardware provided by: Sentex Communications Tested by: pho PR: amd64/135014 MFC after: 1 month Notes: svn path=/head/; revision=208834
* There is rubbish hereMark Murray2009-05-252-11/+8
| | | | | | | | It is time to take it out Now it is cleaner Notes: svn path=/head/; revision=192774
* Make sure arc4random(9) is properly seeded when /etc/rc.d/initrandom returns.Colin Percival2008-11-242-3/+24
| | | | | | | | | Approved by: so (cperciva) Approved by: re (kensmith) Security: FreeBSD-SA-08:11.arc4random Notes: svn path=/head/; revision=185254
* Correct a random value disclosure in random(4).Simon L. B. Nielsen2007-11-291-0/+1
| | | | | | | Security: FreeBSD-SA-07:09.random Notes: svn path=/head/; revision=174073
* Rename the kthread_xxx (e.g. kthread_create()) callsJulian Elischer2007-10-202-3/+3
| | | | | | | | | | | | | | to kproc_xxx as they actually make whole processes. Thos makes way for us to add REAL kthread_create() and friends that actually make theads. it turns out that most of these calls actually end up being moved back to the thread version when it's added. but we need to make this cosmetic change first. I'd LOVE to do this rename in 7.0 so that we can eventually MFC the new kthread_xxx() calls. Notes: svn path=/head/; revision=172836
* Don't save SYSCTL_ADD_*() results in a local variable just to throw themRobert Watson2007-05-281-15/+9
| | | | | | | | | | | away; preserve the ones that are needed for further calls in the init function and ignore the rest entirely. Found with: Coverity Prevent(tm) CID: 563 Notes: svn path=/head/; revision=170067
* Rather than repeatedly setting and discarding local variable 'o' basedRobert Watson2007-05-271-9/+7
| | | | | | | | | | | on the return values of various run-time sysctl additions, just ignore the return value. Found with: Coverity Prevent(tm) CID: 562 Notes: svn path=/head/; revision=170025
* Use pause() rather than tsleep() on stack variables and function pointers.John Baldwin2007-02-271-1/+1
| | | | Notes: svn path=/head/; revision=167086
* Sweep kernel replacing suser(9) calls with priv(9) calls, assigningRobert Watson2006-11-061-1/+2
| | | | | | | | | | | | | | | | specific privilege names to a broad range of privileges. These may require some future tweaking. Sponsored by: nCircle Network Security, Inc. Obtained from: TrustedBSD Project Discussed on: arch@ Reviewed (at least in part) by: mlaier, jmg, pjd, bde, ceri, Alex Lyashkov <umka at sevcity dot net>, Skip Ford <skip dot ford at verizon dot net>, Antoine Brodin <antoine dot brodin at laposte dot net> Notes: svn path=/head/; revision=164033
* Now even more style(9)ish.Michael Reifenberger2006-07-131-1/+1
| | | | | | | Submitted by: pjd Notes: svn path=/head/; revision=160326
* Use the already stored VIA RNG probe informationMichael Reifenberger2006-07-131-1/+1
| | | | | | | | | | | instead of probing again. Adjust style(9) somewhat in probe.c Reviewed by: pjd MFC after: 1 week Notes: svn path=/head/; revision=160325
* Use the already stored VIA RNG probe informationMichael Reifenberger2006-07-121-13/+4
| | | | | | | | | instead of probing again. MFC after: 1 week Notes: svn path=/head/; revision=160311
* Change msleep() and tsleep() to not alter the calling thread's priorityJohn Baldwin2006-04-171-4/+2
| | | | | | | | | | | | | | | if the specified priority is zero. This avoids a race where the calling thread could read a snapshot of it's current priority, then a different thread could change the first thread's priority, then the original thread would call sched_prio() inside msleep() undoing the change made by the second thread. I used a priority of zero as no thread that calls msleep() or tsleep() should be specifying a priority of zero anyway. The various places that passed 'curthread->td_priority' or some variant as the priority now pass 0. Notes: svn path=/head/; revision=157815
* Remove GIANT from device random.Paul Saab2005-12-206-16/+69
| | | | | | | Submitted by: ups Notes: svn path=/head/; revision=153575
* malloc.h relies on param.h for a definition of MAXCPU. I guess that there isScott Long2005-05-301-0/+1
| | | | | | | | other header pollution that makes this work right now, but it falls over when doing a RELENG_5 -> HEAD upgrade. Notes: svn path=/head/; revision=146797
* Revert to the more correct array size, and correct a KASSERT toMark Murray2005-03-291-2/+2
| | | | | | | | | | | only allow proper values. ENTROPYSOURCE is a maxval+1, not an allowable number. Suggested loose protons in the solution: phk Prefers to keep the pH close to seven: markm Notes: svn path=/head/; revision=144291
* Fix off-by-one (too little!) array size problem.Poul-Henning Kamp2005-03-181-1/+1
| | | | | | | Detected by: Coverity (ID#661) Notes: svn path=/head/; revision=143793
* stop including rijndael-api-fst.h from rijndael.h.Hajimu UMEMOTO2005-03-112-2/+2
| | | | | | | this is required to integrate opencrypto into crypto. Notes: svn path=/head/; revision=143418
* netchild's mega-patch to isolate compiler dependencies into a centralJoerg Wunsch2005-03-021-2/+2
| | | | | | | | | | | | | | | | | | | place. This moves the dependency on GCC's and other compiler's features into the central sys/cdefs.h file, while the individual source files can then refer to #ifdef __COMPILER_FEATURE_FOO where they by now used to refer to #if __GNUC__ > 3.1415 && __BARC__ <= 42. By now, GCC and ICC (the Intel compiler) have been actively tested on IA32 platforms by netchild. Extension to other compilers is supposed to be possible, of course. Submitted by: netchild Reviewed by: various developers on arch@, some time ago Notes: svn path=/head/; revision=143063
* Check that we have at least a 586-class CPU before calling do_cpuid().Ian Dowse2005-02-061-0/+3
| | | | | | | | | | | This fixes booting on a number of 486 processors. PR: i386/75686 Reviewed by: markm MFC after: 1 week Notes: svn path=/head/; revision=141405
* Check O_NONBLOCK not IO_NDELAY.Poul-Henning Kamp2004-12-222-3/+1
| | | | | | | Don't include vnode.h Notes: svn path=/head/; revision=139194
* Don't change the priority to PUSER when sleeping, just keep the currentJohn Baldwin2004-11-051-2/+4
| | | | | | | priority. Notes: svn path=/head/; revision=137276
* (1) Move from O(n) list copies to O(1) list concatenation, which isRobert Watson2004-11-031-14/+11
| | | | | | | | | | | | | | supported for STAILQ via STAILQ_CONCAT(). (2) Maintain a count of the number of entries in the thread-local entropy fifo so that we can keep the other fifo counts in synch. MFC after: 3 weeks MFC with: randomdev_soft.c revisions 1.5 and 1.6 Suggested by: jhb (1) Notes: svn path=/head/; revision=137152
* Annotate that get_cyclecount() can be expensive on some platforms,Robert Watson2004-10-181-0/+4
| | | | | | | | which juxtaposes nicely with the comment just above on how the harvest function must be cheap. Notes: svn path=/head/; revision=136672
* Assert that the entropy source category provided by a caller submittingRobert Watson2004-10-121-0/+6
| | | | | | | | entropy is valid, as an invalid source will cause dereferencing of an array of queues to an incorrect memory location. Notes: svn path=/head/; revision=136434
* Modify entropy harvesting locking strategy:Robert Watson2004-10-091-50/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - Trade off granularity to reduce overhead, since the current model doesn't appear to reduce contention substantially: move to a single harvest mutex protecting harvesting queues, rather than one mutex per source plus a mutex for the free list. - Reduce mutex operations in a harvesting event to 2 from 4, and maintain lockless read to avoid mutex operations if the queue is full. - When reaping harvested entries from the queue, move all entries from the queue at once, and when done with them, insert them all into a thread-local queue for processing; then insert them all into the empty fifo at once. This reduces O(4n) mutex operations to O(2) mutex operations per wakeup. In the future, we may want to look at re-introducing granularity, although perhaps at the granularity of the source rather than the source class; both the new and old strategies would cause contention between different instances of the same source (i.e., multiple network interfaces). Reviewed by: markm Notes: svn path=/head/; revision=136338
* Perform a lockless read to test whether an entropy havesting fifo isRobert Watson2004-08-111-0/+4
| | | | | | | | | | | | | full, avoiding the cost of mutex operations if it is. We re-test once the mutex is acquired to make sure it's still true before doing the -modify-write part of the read-modify-write. Note that due to the maximum fifo depth being pretty deep, this is unlikely to improve harvesting performance yet. Approved by: markm Notes: svn path=/head/; revision=133465
* Add module versions.Mark Murray2004-08-021-0/+1
| | | | Notes: svn path=/head/; revision=133036
* Start the entropy device insecure/unblocked. I'll be handing overMark Murray2004-07-182-5/+3
| | | | | | | | | | responsibility for critical randomness requirements (like sshd) to rc.d/* Requested by: many Notes: svn path=/head/; revision=132346
* Do a pass over all modules in the kernel and make them return EOPNOTSUPPPoul-Henning Kamp2004-07-151-0/+4
| | | | | | | | | | | for unknown events. A number of modules return EINVAL in this instance, and I have left those alone for now and instead taught MOD_QUIESCE to accept this as "didn't do anything". Notes: svn path=/head/; revision=132199
* Trim a few things from the dmesg output and stick them under bootverbose toJohn Baldwin2004-07-011-1/+3
| | | | | | | | | | cut down on the clutter including PCI interrupt routing, MTRR, pcibios, etc. Discussed with: USENIX Cabal Notes: svn path=/head/; revision=131398
* Do the dreaded s/dev_t/struct cdev */Poul-Henning Kamp2004-06-161-6/+6
| | | | | | | Bump __FreeBSD_version accordingly. Notes: svn path=/head/; revision=130585
* Add some missing <sys/module.h> includes which are masked by thePoul-Henning Kamp2004-05-301-0/+1
| | | | | | | one on death-row in <sys/kernel.h> Notes: svn path=/head/; revision=129876
* Add a Davies-Meyer style hash to the output. This is still pureMark Murray2004-04-171-11/+123
| | | | | | | | | | | Nehemiah chip, but the work is all done in hardware. There are three opportunities to add other entropy; the Data Buffer, the Cipher's IV and the Cipher's key. A future commit will exploit these opportunities. Notes: svn path=/head/; revision=128368
* More removal of the abortive locking code; malloc buffers whenMark Murray2004-04-171-4/+12
| | | | | | | needed, rather than potentially reusing contents. Notes: svn path=/head/; revision=128367
* Attempts to make this device Giant-free were ill-conceived asMark Murray2004-04-162-14/+9
| | | | | | | | | | | uiomove(9) is not properly locked. So, return to NEEDGIANT mode. Later, when uiomove is finely locked, I'll revisit. While I'm here, provide some temporary debugging output to help catch blocking startups. Notes: svn path=/head/; revision=128321
* Default to harvesting everything. This is to help give a fasterMark Murray2004-04-162-4/+4
| | | | | | | | startup. harvesting can be turned OFF in etc/rc.d/* if it is a burden. Notes: svn path=/head/; revision=128320
* Fix "sleeping without a mutex" panic.Mark Murray2004-04-121-3/+6
| | | | Notes: svn path=/head/; revision=128151
* Fix pc98 build.Yoshihiro Takahashi2004-04-111-3/+3
| | | | Notes: svn path=/head/; revision=128109
* Reorganise the entropy device so that high-yield entropy sourcesMark Murray2004-04-0912-421/+788
| | | | | | | | | | can more easily be used INSTEAD OF the hard-working Yarrow. The only hardware source used at this point is the one inside the VIA C3 Nehemiah (Stepping 3 and above) CPU. More sources will be added in due course. Contributions welcome! Notes: svn path=/head/; revision=128059
* kthread_exit() no longer requires Giant, so don't force callers to acquireJohn Baldwin2004-03-051-1/+0
| | | | | | | | | Giant just to call kthread_exit(). Requested by: many Notes: svn path=/head/; revision=126674