2 -- Copyright (C) 2008-2014 Matthew Wild
3 -- Copyright (C) 2008-2014 Waqas Hussain
5 -- This project is MIT/X11 licensed. Please see the
6 -- COPYING file in the source package for more information.
9 local ok
, crand
= pcall(require
, "util.crand");
10 if ok
then return crand
; end
12 local urandom
, urandom_err
= io
.open("/dev/urandom", "r");
14 local function bytes(n
)
15 local data
, err
= urandom
:read(n
);
18 error("Unable to retrieve data from secure random number generator (/dev/urandom): "..tostring(err
));
20 error("Secure random number generator (/dev/urandom) returned an end-of-file condition");
28 error("Unable to obtain a secure random number generator, please see https://prosody.im/doc/random ("..urandom_err
..")");
34 _source
= "/dev/urandom";