util.crand
Prosody normally opens and reads from the special device file
/dev/urandom to acquire pseudorandom data. On some
constrained platforms such as containers or jails this might not be
available. This is where the optional util.crand module
comes in. It is a compiled binary module that can provide access to a
different pseudorandom data generator.
Usage
util.crand should not be used directly, instead use util.random.
API
The API provided is the same as util.random, which
simply redirects to the util.crand module if available.
Available backends
To use util.crand you need to select a suitable backend
using the ./configure script at build time.
Linux getrandom
The getrandom() system call in Linux is a different
interface to the same random generator as /dev/urandom.
./configure --with-random=getrandomBSD arc4random
Used in /dev/urandom on some *BSD operating systems. Can
also be used on Linux via a libbsd package on some
distributions.
./configure --with-random=arc4randomOpenSSL
Prosody already uses OpenSSL for cryptographic hash functions and SSL/TLS. OpenSSL also includes an API for getting random data.
./configure --with-random=openssl