Age | Commit message (Collapse) | Author |
|
Signed-off-by: Laurent Bercot <ska@appnovation.com>
|
|
Signed-off-by: Laurent Bercot <ska@appnovation.com>
|
|
Signed-off-by: Laurent Bercot <ska@appnovation.com>
|
|
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>
|
|
Signed-off-by: Laurent Bercot <ska@appnovation.com>
|
|
Signed-off-by: Laurent Bercot <ska@appnovation.com>
|
|
|
|
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>
|
|
- 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>
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
propagate changes
|
|
|
|
libdatastruct still missing, library still not functional
|
|
The library isn't supposed to be functional yet: there are
still a lot of type mismatches.
|
|
|
|
|
|
|
|
|
|
|
|
getrandom() without /dev/urandom
|
|
|
|
|
|
|
|
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.
|
|
- 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
|
|
sha256 documented.
|
|
|