Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | include header needed by older linux kernels | bcook | 2014-10-11 | 1 | -1/+2 |
| | | | | not all versions of <linux/random.h> include <linux/types.h> by default | ||||
* | preserve errno value on success. | bcook | 2014-08-28 | 1 | -4/+6 |
| | | | | | If getrandom returns a temporary failure, make sure errno is not polluted when it succeeds. Thanks to deraadt@ for pointing it out. | ||||
* | only build the getrandom path if SYS_getrandom is defined. | bcook | 2014-08-16 | 1 | -3/+7 |
| | | | | like the sysctl path | ||||
* | getrandom(2) support for getentropy_linux | bcook | 2014-08-16 | 1 | -13/+10 |
| | | | | | | | | | | | This enables support for the new getrandom(2) syscall in Linux 3.17. If the call exists and fails, return a failure in getentropy(2) emulation as well. This adds a EINTR check in case the urandom pool is not initialized. Tested on Fedora Rawhide with 3.17rc0 and Ubuntu 14.04 ok deraadt@ | ||||
* | munmap correct object in (extremely unlikely, and effectively terminal) | deraadt | 2014-08-13 | 3 | -6/+6 |
| | | | | | case of failing to map the 2nd object. found by Paul Maurers | ||||
* | better match proposed syscall api | bcook | 2014-07-22 | 1 | -8/+2 |
| | |||||
* | protect sysctl path with SYS__sysctl instead; from enh@google, ok bcook | deraadt | 2014-07-21 | 1 | -6/+6 |
| | |||||
* | Use explicit_bzero() instead of memset() on buffers going out of scope. | guenther | 2014-07-21 | 3 | -6/+9 |
| | | | | | | | Also, zero the SHA256 context. suggested by "eric" in a comment on an opensslrampage.org post ok miod@ deraadt@ | ||||
* | cast from void * before math; enh@google | deraadt | 2014-07-21 | 1 | -2/+2 |
| | |||||
* | Move more OS-specific functionality to arc4random.h headers. | bcook | 2014-07-20 | 4 | -4/+37 |
| | | | | | | | | Move <sys/mman.h> and raise(SIGKILL) calls to OS-specific headers. On OpenBSD, move thread_private.h as well to arc4random.h. On Windows, use TerminateProcess on getentropy failure. ok deraadt@ | ||||
* | initial win32 ARC4_LOCK/UNLOCK implementation. | bcook | 2014-07-20 | 1 | -1/+21 |
| | | | | | It may make sense to later replace this with a Critical Section later. ok guenther@ | ||||
* | Demonstrate how new linux getrandom() will be called, at least until | deraadt | 2014-07-20 | 1 | -1/+37 |
| | | | | | | it shows up in libraries. Even the system call is probably not finalized. Bit dissapointed it has turned out to be a descriptor-less read() with EINVAL and EINTR error conditions, but we can work with it. | ||||
* | remove disabled main hook; we use phdr now; ok bcook | deraadt | 2014-07-19 | 3 | -21/+3 |
| | |||||
* | tab love | deraadt | 2014-07-19 | 1 | -3/+3 |
| | |||||
* | Move _ARC4_ATFORK handlers from thread_private.h in portable. | bcook | 2014-07-19 | 3 | -3/+15 |
| | |||||
* | move _ARC4_LOCK/UNLOCK primitives from thread_private into OS-specific modules | bcook | 2014-07-19 | 3 | -3/+22 |
| | |||||
* | fixup typos | bcook | 2014-07-19 | 3 | -55/+54 |
| | |||||
* | Change _rs_allocate so it can combine the two regions (rs and rsx) | deraadt | 2014-07-19 | 4 | -55/+55 |
| | | | | | | | | | | into one if a system has an awesome getentropy(). In that case it is valid to totally throw away the rsx state in the child. If the getentropy() is not very good and has a lazy reseed operation, this combining is a bad idea, and the reseed should probably continue to use the "something old, something new" mix. _rs_allocate() can accomodate either method, but not on the fly. ok matthew | ||||
* | Cleanup portable arc4random fork detection code: | matthew | 2014-07-18 | 3 | -33/+24 |
| | | | | | | | | | | | | | | 1. Use "len" parameter instead of sizeof(*rs). 2. Simplify the atfork handler to be strictly async signal safe by simply writing to a global volatile sig_atomic_t object, and then checking for this in _rs_forkdetect(). (Idea from discussions with Szabolcs Nagy and Rich Felker.) 3. Use memset(rs, 0, sizeof(*rs)) to match OpenBSD's MAP_INHERIT_ZERO fork semantics to avoid any skew in behavior across platforms. ok deraadt | ||||
* | Seperate arc4random's os-dependent parts into static inline functions, | deraadt | 2014-07-18 | 4 | -0/+243 |
| | | | | | making it much easier for libressl -portable to fill in the gaps. ok bcook beck | ||||
* | Only call getauxval(3) if HAVE_GETAUXVAL is defined. Fixes build on older | kettenis | 2014-07-16 | 1 | -1/+3 |
| | | | | | | | Linux (such as Ubuntu 12.04LTS) that don't have it yet. Seems the AT_XXX defines are pulled in by <link.h> now. ok beck@ | ||||
* | Use dl_iterate_phdr() to iterate over the segments and throw the addresses | deraadt | 2014-07-13 | 2 | -2/+28 |
| | | | | | | | into the hash; hoping the system has some ASLR or PIE. This replaces and substantially improves upon &main which proved problematic with some picky linkers. Work with kettenis, testing by beck | ||||
* | Provide a link to the canonical API specification. | deraadt | 2014-07-13 | 4 | -4/+16 |
| | | | | ok beck | ||||
* | Take away the use of the address of main as a source of entropy. Causes | beck | 2014-07-13 | 3 | -3/+15 |
| | | | | | | distractions to people testing and seeing link errors in some setups. This will come back in another form ok deraadt@ | ||||
* | getentropy on Windows. It compiles but has not been thoroughly tested yet. | wouter | 2014-07-12 | 1 | -0/+56 |
| | | | | OK: beck@ | ||||
* | Remove signed/unsigned warning, statement before declaration and | wouter | 2014-07-12 | 3 | -29/+32 |
| | | | | | | add a function to use function pointers that does not take sizeof(fptr). OK beck@ | ||||
* | guard inclusion of sys/sysctl.h so we can detect at compile time and | beck | 2014-07-12 | 1 | -1/+3 |
| | | | | | keep linux distros happy that don't have it. ok bcook@ | ||||
* | remove gratuitous differences, ok beck | deraadt | 2014-07-12 | 1 | -39/+40 |
| | |||||
* | remove gratuitous differences, ok beck bcook | deraadt | 2014-07-12 | 2 | -12/+12 |
| | |||||
* | Solaris uses a symbolic link for /dev/urandom which harms best practice of | beck | 2014-07-12 | 1 | -18/+34 |
| | | | | | using O_NOFOLLOW - cope with it as best as possible by trying two different paths. - written by deraadt@ and kettenis@ | ||||
* | remove unused variables getentropy for OS X | bcook | 2014-07-09 | 1 | -3/+3 |
| | | | | ok beck@ | ||||
* | getentropy for osx and solaris. will be needed for a portable release | beck | 2014-07-08 | 2 | -0/+838 |
| | |||||
* | fix oops, accidental delete.. darn copying of files between machines | beck | 2014-07-08 | 1 | -2/+2 |
| | |||||
* | j should be an int, like repeat | beck | 2014-07-08 | 1 | -3/+4 |
| | |||||
* | unbreak last commit - but same intent, make re-seed less expensive | beck | 2014-07-08 | 1 | -12/+16 |
| | |||||
* | repeat calls to getentrypy() with the same pid likely indicate reseeds. | deraadt | 2014-07-08 | 1 | -3/+10 |
| | | | | | | Since we assume the PRNG above is doing "something old, something new" folding, shortcut and do fewer repeats through the timing loop. ok beck | ||||
* | fix HD() misuse; from brent cook | deraadt | 2014-06-26 | 1 | -2/+2 |
| | |||||
* | AT_BASE returns us the *address* of the start of ld.so, so | beck | 2014-06-25 | 1 | -2/+2 |
| | | | | | use the address, not what it points to (which is always the same) ok deraadt@ | ||||
* | get the page of data at AT_SYSINFO_EHDR | beck | 2014-06-25 | 1 | -2/+2 |
| | | | | ok deraadt@ | ||||
* | comment fixes from theo | beck | 2014-06-25 | 1 | -5/+6 |
| | |||||
* | Possibly obtain a little bit of entropy from addresses returned | beck | 2014-06-25 | 1 | -2/+23 |
| | | | | | by getauxval if we have it. ok deraadt@ | ||||
* | O_NOFOLLOW would be very nice to have here if the version of linux | beck | 2014-06-25 | 1 | -10/+11 |
| | | | | | we are running supports it. from enh@google.com | ||||
* | unbreak build of getentropy_sysctl - we need linux/sysctl.h, and | beck | 2014-06-23 | 1 | -18/+21 |
| | | | | RANDOM_UUID is an enum member. | ||||
* | unbreak - main needs to be extern in here somewhere. | beck | 2014-06-23 | 1 | -1/+2 |
| | |||||
* | repair indentation for an inner loop; shorten some macros and variable | deraadt | 2014-06-21 | 1 | -129/+135 |
| | | | | | names to shorten line lengths ok beck | ||||
* | hash in correct pointer | deraadt | 2014-06-21 | 1 | -2/+2 |
| | |||||
* | KNF | beck | 2014-06-20 | 1 | -48/+56 |
| | |||||
* | indent | deraadt | 2014-06-20 | 1 | -2/+2 |
| | |||||
* | rearrange so that the main function with the important comments is at the top | otto | 2014-06-20 | 1 | -78/+80 |
| | | | | ok deraadt@ beck@ | ||||
* | Work in progress on how to deal with the inherit unreliability of | beck | 2014-06-20 | 1 | -0/+439 |
/dev/urandom. Does well in the fallback case. Get it in tree so it can be worked on. ok otto@ deraadt@ |