File

util/random.lua @ 9781:161411a41377

util.prosodyctl: Allow passing path to Lua runtime to the start() function By default the shebang is used. Being able to override it is useful in cases where the shebang does not match the configured runtime.
author Kim Alvefur <zash@zash.se>
date Thu, 10 Jan 2019 14:57:26 +0100
parent 8243:292f61d9d30a
child 10014:5d2f7144fa12
line wrap: on
line source

-- Prosody IM
-- Copyright (C) 2008-2014 Matthew Wild
-- Copyright (C) 2008-2014 Waqas Hussain
--
-- This project is MIT/X11 licensed. Please see the
-- COPYING file in the source package for more information.
--

local ok, crand = pcall(require, "util.crand");
if ok then return crand; end

local urandom, urandom_err = io.open("/dev/urandom", "r");

local function bytes(n)
	return urandom:read(n);
end

if not urandom then
	function bytes()
		error("Unable to obtain a secure random number generator, please see https://prosody.im/doc/random ("..urandom_err..")");
	end
end

return {
	bytes = bytes;
	_source = "/dev/urandom";
};