mirror of
https://github.com/ilyakooo0/urbit.git
synced 2024-12-20 13:22:07 +03:00
Expand README
This commit is contained in:
parent
97b072ef6d
commit
4cbc082504
18
README.md
18
README.md
@ -1,7 +1,23 @@
|
||||
libent is a cross-platform wrapper around `getentropy(2)`. It exports
|
||||
one symbol, `ent_getentropy`, which expands to `getentropy` if the
|
||||
latter is available. Otherwise, it tries to use the next best source of
|
||||
entropy -- /dev/urandom on *nix, BCryptGenRandom on Windows.
|
||||
entropy — `/dev/urandom` on *nix.
|
||||
|
||||
### Why?
|
||||
|
||||
`getentropy` is the wave of the future. It's the correct API for
|
||||
generating small amounts of entropy to create cryptographic keys or seed
|
||||
PRNGs. It's good and reasonable and true, it's on Linux, *BSD, and OS X,
|
||||
and it only took us fifty years of UNIX to get here.
|
||||
|
||||
Sadly, it only just arrived, so nobody has it yet. It didn't land in
|
||||
Linux until glibc 2.25, which seems to only have made it into Debian 10.
|
||||
|
||||
Once `getentropy` is everywhere you care about, you can just do a
|
||||
s/ent_//g on all the call sites and discard this shim.
|
||||
|
||||
Admittedly, 90% of the motivation behind this was to fix the randomness
|
||||
shim in [Urbit](https://github.com/urbit/urbit).
|
||||
|
||||
References:
|
||||
* [OpenBSD getentropy](https://man.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man2/getentropy.2)
|
||||
|
Loading…
Reference in New Issue
Block a user