Commit Graph

4079 Commits

Author SHA1 Message Date
Leah Rowe cec9a25c2a nvmutil: clamp rand (rejection sampling)
clamp rand to eliminate modulo sampling; high
values on the randomisation will bias the result.

not really critical for mac addresses, but there's
no reason not to have this. this patches reduces
the chance that two libreboot users will generate
the same mac addresses!

Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-28 03:10:46 +00:00
Leah Rowe f4f1670909 util/nvmutil: tidy up hextonum
i had a bunch of hacks in here because i was
previously using very buggy rand. now it's ok.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-28 03:08:52 +00:00
Leah Rowe 998528c404 rand.c: fix initialisation bug in mrkbuf
should be null on bad return

Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-28 02:27:00 +00:00
Leah Rowe 29296fc513 cleanup
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-27 22:58:12 +00:00
Leah Rowe 1e23ee26b1 header
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-27 21:41:12 +00:00
Leah Rowe 0cc4ff7b3b util/libreboot-utils: fix div by zero in rsize
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-27 17:14:10 +00:00
Leah Rowe db6e817ded util/libreboot-utils: finish implementing hell
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-27 16:56:40 +00:00
Leah Rowe 5d6344292a challenge
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-27 02:28:27 +00:00
Leah Rowe a29a3ac6f6 cleanup
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 23:02:00 +00:00
Leah Rowe 1a09efbbbe cleanup
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 19:44:23 +00:00
Leah Rowe d1ba9bae03 further cleanup
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 13:09:43 +00:00
Leah Rowe 10ecf32e33 libreboot-utils: improved randomness test
and the module bias handling is fully correct

Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 10:52:11 +00:00
Leah Rowe 8e8f7bced4 mkhtemp rand: fix theoretical integer overflow
extremely theoretical, with a T. T for theoretical.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 09:04:30 +00:00
Leah Rowe d6087901c1 rand/libreboot/utils: prevent div by zero
not really a thing. bufsiz would never be zero,
unless the demon takes over linux

Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 08:59:03 +00:00
Leah Rowe cf16d07df9 rand: fix modulo bias in rmalloc
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 08:56:15 +00:00
Leah Rowe dbc99be9a0 cleanup
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 07:04:23 +00:00
Leah Rowe b211706559 improve 3
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe 4d4285e63c improve 2
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe fe259bd042 improve
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe 1900e18dae phrasing
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe f7bd4b9472 nvmutil: remove errno handle in hextonum
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe 5e049df024 REAL_POS_IO enable by default in nvmutil
(for real pwrite/pread. don't use the compatibility
one - it works perfectly, but using it is pointless
and may have unknown bugs, even though i know it's
probably perfect)

Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe 5ea7fe22b2 cleanup
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe c2c24b7a24 nvmutil: fix lseek call when read pos i/o enabled
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe 3d3193bb80 mkhtemp readme
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe 8522b5c391 more cleanup on rand.c
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe e151179d14 cleanup
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe c4ff47a8ed fix makefile
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe f4f3fe3e0a libreboot-utils: tidy up rand.c
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe 58ce1d74c0 libreboot-utils: new function, scatn()
concatenate an arbitrary number of strings,
pointed to by char **

i'll use this and the next function, dcatn,
in an upcoming feature planned for mkhtemp.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe b84c929e64 rmalloc
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe e0319f0116 util/libreboot-utils: randomisation test
to test the effectiveness of the rand function

Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe dc7a02da2d cleanup
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe c66f381e90 mkrstr
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe 1e79219bea lbutils: new function, mkrbuf (random malloc)
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe ee4f765719 lbutils: close fd on rset failure
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe e8c4bccd86 further clarify intentt
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe 4034b211ce lbutils, rset: err if zero bytes requested
similar to the logic about other failure states

Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe b26837c4dc dot
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe e44ea5d794 lbutils: also check null!
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe 7b3c8cf7ec lbutils: clarify design regarding urandom/getrandom
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe 34f26319d7 lbutils, rand: err on zero return (fatal)
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe bce1099509 cleanup
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe 0626bf48f4 lbutils: cast to prevent ub in rset()
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe 50e3b1f45d cleanup
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe 0d86fd38df fix offset on urandom falback
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe a6f76ac4ee libreboot-utils: tidy up rand
make it more efficient. much lower rejection
rate now, about 2-5%. deal with bias, but also
get numbers in bulk. not too many.

i'd say this is about right in terms of performance
balance. 64 bytes == 8 large integers.

Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe cbe48caf1b cleanup
Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe a70ede850d libreboot-utils: replace rlong() with rset()
now you can send an arbitrary number of bytes
with random numbers

Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00
Leah Rowe 00b56c0278 libreboot-utils: tidy up rand
also re-add /dev/urandom support, as a config option

Signed-off-by: Leah Rowe <leah@libreboot.org>
2026-03-26 06:59:42 +00:00