# HG changeset patch # User Kim Alvefur # Date 1488041842 -3600 # Node ID e3d3ebd417f476e96bd04822ef226e3233f4b48d # Parent a6eb3b6bf90332c91e73b90cb6d39475ea1095ba util.crand: Throw error if OpenSSLs RNG is not seeded diff -r a6eb3b6bf903 -r e3d3ebd417f4 util-src/crand.c --- a/util-src/crand.c Sat Feb 25 02:15:15 2017 +0100 +++ b/util-src/crand.c Sat Feb 25 17:57:22 2017 +0100 @@ -67,6 +67,11 @@ arc4random_buf(buf, len); ret = len; #elif defined(WITH_OPENSSL) + if(!RAND_status()) { + lua_pushliteral(L, "OpenSSL PRNG not seeded"); + lua_error(L); + } + ret = RAND_bytes(buf, len); if(ret == 1) { @@ -87,6 +92,7 @@ #if (LUA_VERSION_NUM > 501) luaL_checkversion(L); #endif + lua_newtable(L); lua_pushcfunction(L, Lrandom); lua_setfield(L, -2, "bytes"); @@ -100,10 +106,6 @@ #endif lua_setfield(L, -2, "_source"); -#if defined(WITH_OPENSSL) && defined(_WIN32) - /* TODO Do we need to seed this on Windows? */ -#endif - return 1; }