mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-01-31 03:27:39 +00:00
Add GetRandomBytes to redbean Lua (#244)
This commit is contained in:
parent
5029e20bef
commit
916f19eea1
2 changed files with 21 additions and 1 deletions
|
@ -698,6 +698,10 @@ FUNCTIONS
|
||||||
Returns the request HTTP protocol version, which can be 9 for
|
Returns the request HTTP protocol version, which can be 9 for
|
||||||
HTTP/0.9, 10 for HTTP/1.0, or 11 for HTTP/1.1.
|
HTTP/0.9, 10 for HTTP/1.0, or 11 for HTTP/1.1.
|
||||||
|
|
||||||
|
GetRandomBytes([length:int]) → str
|
||||||
|
Returns string with the specified number of random bytes (1..256).
|
||||||
|
If no length is specified, then the string of length 16 is returned.
|
||||||
|
|
||||||
GetRedbeanVersion() → int
|
GetRedbeanVersion() → int
|
||||||
Returns the Redbean version in the format 0xMMmmpp, with major (MM),
|
Returns the Redbean version in the format 0xMMmmpp, with major (MM),
|
||||||
minor (mm), and patch (pp) versions encoded. The version value 1.4
|
minor (mm), and patch (pp) versions encoded. The version value 1.4
|
||||||
|
@ -850,7 +854,7 @@ FUNCTIONS
|
||||||
If this option is programmed then redbean will not transmit a
|
If this option is programmed then redbean will not transmit a
|
||||||
Server Name Indicator (SNI) when performing Fetch() requests.
|
Server Name Indicator (SNI) when performing Fetch() requests.
|
||||||
|
|
||||||
ProgramSslPresharedKey(key:str, identity:str)
|
ProgramSslPresharedKey(key:str,identity:str)
|
||||||
This function can be used to enable the PSK ciphersuites
|
This function can be used to enable the PSK ciphersuites
|
||||||
which simplify SSL and enhance its performance in controlled
|
which simplify SSL and enhance its performance in controlled
|
||||||
environments. `key` may contain 1..32 bytes of random binary
|
environments. `key` may contain 1..32 bytes of random binary
|
||||||
|
|
|
@ -4471,6 +4471,21 @@ static int LuaSha512(lua_State *L) {
|
||||||
return LuaHasher(L, 64, mbedtls_sha512_ret_512);
|
return LuaHasher(L, 64, mbedtls_sha512_ret_512);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int LuaGetRandomBytes(lua_State *L) {
|
||||||
|
char *p;
|
||||||
|
size_t n = luaL_optinteger(L, 1, 16);
|
||||||
|
if (!(n > 0 && n <= 256)) {
|
||||||
|
luaL_argerror(L, 1, "not in range 1..256");
|
||||||
|
unreachable;
|
||||||
|
}
|
||||||
|
|
||||||
|
p = malloc(n);
|
||||||
|
CHECK_EQ(n, getrandom(p, n, 0));
|
||||||
|
lua_pushlstring(L, p, n);
|
||||||
|
free(p);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
static int LuaGetHttpReason(lua_State *L) {
|
static int LuaGetHttpReason(lua_State *L) {
|
||||||
lua_pushstring(L, GetHttpReason(luaL_checkinteger(L, 1)));
|
lua_pushstring(L, GetHttpReason(luaL_checkinteger(L, 1)));
|
||||||
return 1;
|
return 1;
|
||||||
|
@ -5153,6 +5168,7 @@ static const luaL_Reg kLuaFuncs[] = {
|
||||||
{"GetPath", LuaGetPath}, //
|
{"GetPath", LuaGetPath}, //
|
||||||
{"GetPayload", LuaGetPayload}, //
|
{"GetPayload", LuaGetPayload}, //
|
||||||
{"GetPort", LuaGetPort}, //
|
{"GetPort", LuaGetPort}, //
|
||||||
|
{"GetRandomBytes", LuaGetRandomBytes}, //
|
||||||
{"GetRedbeanVersion", LuaGetRedbeanVersion}, //
|
{"GetRedbeanVersion", LuaGetRedbeanVersion}, //
|
||||||
{"GetRemoteAddr", LuaGetRemoteAddr}, //
|
{"GetRemoteAddr", LuaGetRemoteAddr}, //
|
||||||
{"GetScheme", LuaGetScheme}, //
|
{"GetScheme", LuaGetScheme}, //
|
||||||
|
|
Loading…
Reference in a new issue