Random APIs

More documentation to come.

Platform-Specific Default Random

The implementation of the default random generator varies by platform. The implementation on each platform must be thread-safe and automatically seeded, and should be cryptographically secure to the extent possible. Currently supported platforms have the following implementation details:

  • Apple platforms use arc4random_buf(3).
  • Linux, FreeBSD, and other UNIX-like platforms use getrandom(2) when available; otherwise, they read from /dev/urandom.
  • Fuchsia platforms use getentropy(3).
  • Windows platforms use BCryptGenRandom.