summaryrefslogtreecommitdiff
path: root/src/librandom
AgeCommit message (Collapse)Author
2022-11-29 Prepare for 2.13.0.0, revamp strerrLaurent Bercot
Signed-off-by: Laurent Bercot <ska@appnovation.com>
2022-07-23 Don't use arc4random() for early random on LinuxLaurent Bercot
Signed-off-by: Laurent Bercot <ska@appnovation.com>
2022-07-18 Fix allread errno managementLaurent Bercot
Signed-off-by: Laurent Bercot <ska@appnovation.com>
2022-06-23 Add runtime fallback for GRND_INSECURELaurent Bercot
The grndinsecure sysdep is only build-time tested and returns yes if the kernel headers declare GRND_INSECURE. That is a problem because the kernel headers are most likely provided by the toolchain and do not reflect the exact capabilities of the run-time kernel. If the run-time kernel doesn't support that option, getrandom() fails. That made random_buf_early() busyloop. To avoid that, we now fallback to random_devurandom() as an implementation of random_buf_early() if getrandom() fails when used with GRND_INSECURE. This adds a slight amount of overhead to random_buf_early(), so it's probably better to just disable the sysdep at build time if you're making binaries that will run on older kernels. Signed-off-by: Laurent Bercot <ska@appnovation.com>
2022-06-08 Export random_devurandom, fix APIsLaurent Bercot
Signed-off-by: Laurent Bercot <ska@appnovation.com>
2022-04-09 Prepare for 2.12.0.0. librandom revamp.Laurent Bercot
Signed-off-by: Laurent Bercot <ska@appnovation.com>
2022-03-27 Don't write to /dev/urandom. (It's useless or even harmful.)Laurent Bercot
2021-10-30 Don't return voidLaurent Bercot
Error by: Studio 12.6 Sun C 5.15 SunOS_i386 2017/05/30 Reported by schmonz Signed-off-by: Laurent Bercot <ska@appnovation.com>
2021-07-28 Huge incompatible changes.Laurent Bercot
- Obsolete skalibs/environ.h and skalibs/getpeereid.h removed. - rc4 and md5 removed. - All *_t types renamed to avoid treading on POSIX namespace. - subgetopt() renamed to lgetopt(). - signal functions reworked; skasigaction removed; sig_stack removed - Various functions removed: skaoffsetof(), selfpipe_untrap() - New posixplz function: munmap_void. Signed-off-by: Laurent Bercot <ska@appnovation.com>
2021-01-15 Don't touch /dev/urandom when getrandom() existsLaurent Bercot
2020-12-04 Fix iobufferk_init on recent Linux; remove last superfluous coeLaurent Bercot
2019-09-20 sysdeps redesign: first part: minimize clr testsLaurent Bercot
Remaining clr: emptyregex: can be safely guessed to no nullispointer: can't be safely guessed, but do we need the test? devurandom: can't be safely guessed malloc0: can more or less be safely guessed to no
2018-12-08 Really add mkfootemp and autosurf, I guess ?Laurent Bercot
2018-12-07 Add mk?temp and autosurfLaurent Bercot
2017-09-27 Comment fix (writing to /dev/urandom doesn't speed it up)Laurent Bercot
2017-07-16 Add egidingroups sysdeps, change fd_close() to void and saving errno, ↵Laurent Bercot
propagate changes
2017-03-13 More superflous headers cleanup and tiny fixesLaurent Bercot
2017-02-21 Types change: big pass on libstddjb and libunixonacidLaurent Bercot
libdatastruct still missing, library still not functional
2017-02-15 add arc4random_addrandom sysdep; next batch of types changes.Laurent Bercot
The library isn't supposed to be functional yet: there are still a lot of type mismatches.
2017-01-21 Types fix: librandom, libstdcryptoLaurent Bercot
2016-12-05 Also fix actual random_string compilation with musl and getrandom()...Laurent Bercot
2016-11-03 random_init: do not fail if we can't write to /dev/urandomLaurent Bercot
2016-10-24 This one escaped the previous commit: random_init changesLaurent Bercot
2016-10-19 Better random_uint32 uniformity algorithmLaurent Bercot
2016-10-16 Fix headers in random_init.c; add a workaround for (pathological) ↵Laurent Bercot
getrandom() without /dev/urandom
2016-10-14 More typo fixingLaurent Bercot
2016-10-14 Add a cast to arc4random_addrandom invocation to make clang happyLaurent Bercot
2016-10-14 Include skalibs/nonposix.h so BSDs can find arc4randomLaurent Bercot
2016-10-14 Clean up and modernize librandom.Laurent Bercot
Correct random number generation has historically been suprisingly painful to achieve. There was no standard, every system behaved in a subtly different way, and there were a few userland initiatives to get decent randomness, all incompatible of course. The situation is a bit better now, we're heading towards some standardization. The arc4random() series of functions is a good API, and available on a lot of systems - unfortunately not Linux, but on Linux the new getrandom() makes using /dev/random obsolete. So I removed the old crap in librandom, dropped EGD support, dropped dynamic backend selection, made a single API series (random_* instead of goodrandom_* and badrandom_*), added an arc4random backend and a getrandom backend, and defaulted to /dev/urandom backed up by SURF in the worst case. This should be much smaller and logical. However, it's a major API break, so the skarnet.org stack will be changed to adapt.
2015-02-05 - Add siovec_truncLaurent Bercot
- Add openwritevnclose - replace buffer_read/write with fd_readsv/writesv - add localtmn_from_tain_g - refactor cdb_make - rewrite buffer_getvall and buffer_putvall, with a bugfix
2014-12-20 Lots of cosmetic fixes.Laurent Bercot
sha256 documented.
2014-09-18initial commit with rc for skalibs-2.0.0.0Laurent Bercot