util/random.lua

Wed, 13 Jan 2016 00:45:54 +0100

author
Kim Alvefur <zash@zash.se>
date
Wed, 13 Jan 2016 00:45:54 +0100
changeset 401
7be4ebefd1f4
parent 388
d963c8a5d89c
permissions
-rw-r--r--

util.random: Use /dev/urandom or LuaCrypto

388
d963c8a5d89c Import util.random from Prosody (using SHA-1)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 -- Prosody IM
d963c8a5d89c Import util.random from Prosody (using SHA-1)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2 -- Copyright (C) 2008-2014 Matthew Wild
d963c8a5d89c Import util.random from Prosody (using SHA-1)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
3 -- Copyright (C) 2008-2014 Waqas Hussain
d963c8a5d89c Import util.random from Prosody (using SHA-1)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4 --
d963c8a5d89c Import util.random from Prosody (using SHA-1)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5 -- This project is MIT/X11 licensed. Please see the
d963c8a5d89c Import util.random from Prosody (using SHA-1)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6 -- COPYING file in the source package for more information.
d963c8a5d89c Import util.random from Prosody (using SHA-1)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 --
d963c8a5d89c Import util.random from Prosody (using SHA-1)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8
401
7be4ebefd1f4 util.random: Use /dev/urandom or LuaCrypto
Kim Alvefur <zash@zash.se>
parents: 388
diff changeset
9 local urandom = io.open("/dev/urandom", "r");
388
d963c8a5d89c Import util.random from Prosody (using SHA-1)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10
401
7be4ebefd1f4 util.random: Use /dev/urandom or LuaCrypto
Kim Alvefur <zash@zash.se>
parents: 388
diff changeset
11 if urandom then
7be4ebefd1f4 util.random: Use /dev/urandom or LuaCrypto
Kim Alvefur <zash@zash.se>
parents: 388
diff changeset
12 return {
7be4ebefd1f4 util.random: Use /dev/urandom or LuaCrypto
Kim Alvefur <zash@zash.se>
parents: 388
diff changeset
13 seed = function () end;
7be4ebefd1f4 util.random: Use /dev/urandom or LuaCrypto
Kim Alvefur <zash@zash.se>
parents: 388
diff changeset
14 bytes = function (n) return urandom:read(n); end
7be4ebefd1f4 util.random: Use /dev/urandom or LuaCrypto
Kim Alvefur <zash@zash.se>
parents: 388
diff changeset
15 };
388
d963c8a5d89c Import util.random from Prosody (using SHA-1)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16 end
d963c8a5d89c Import util.random from Prosody (using SHA-1)
Kim Alvefur <zash@zash.se>
parents:
diff changeset
17
401
7be4ebefd1f4 util.random: Use /dev/urandom or LuaCrypto
Kim Alvefur <zash@zash.se>
parents: 388
diff changeset
18 local crypto = require "crypto"
7be4ebefd1f4 util.random: Use /dev/urandom or LuaCrypto
Kim Alvefur <zash@zash.se>
parents: 388
diff changeset
19 return crypto.rand;

mercurial