lua 5.2 compatibility (#14)
compatibility update - making a few changes in next commit...
This commit was merged in pull request #14.
This commit is contained in:
@@ -34,7 +34,7 @@ local function quarterRound(s, a, b, c, d)
|
||||
end
|
||||
|
||||
local function hashBlock(state, rnd)
|
||||
local s = {unpack(state)}
|
||||
local s = {table.unpack(state)}
|
||||
for i = 1, rnd do
|
||||
local r = i%2==1
|
||||
s = r and quarterRound(s, 1, 5, 9, 13) or quarterRound(s, 1, 6, 11, 16)
|
||||
@@ -92,9 +92,9 @@ local function serialize(state)
|
||||
end
|
||||
|
||||
local mt = {
|
||||
__tostring = function(a) return string.char(unpack(a)) end,
|
||||
__tostring = function(a) return string.char(table.unpack(a)) end,
|
||||
__index = {
|
||||
toHex = function(self) return ("%02x"):rep(#self):format(unpack(self)) end,
|
||||
toHex = function(self) return ("%02x"):rep(#self):format(table.unpack(self)) end,
|
||||
isEqual = function(self, t)
|
||||
if type(t) ~= "table" then return false end
|
||||
if #self ~= #t then return false end
|
||||
@@ -113,7 +113,7 @@ local function crypt(data, key, nonce, cntr, round)
|
||||
assert(#key == 16 or #key == 32, "ChaCha20: Invalid key length ("..#key.."), must be 16 or 32")
|
||||
assert(#nonce == 12, "ChaCha20: Invalid nonce length ("..#nonce.."), must be 12")
|
||||
|
||||
data = type(data) == "table" and {unpack(data)} or {tostring(data):byte(1,-1)}
|
||||
data = type(data) == "table" and {table.unpack(data)} or {tostring(data):byte(1,-1)}
|
||||
cntr = tonumber(cntr) or 1
|
||||
round = tonumber(round) or 20
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ local band = bit32 and bit32.band or bit.band
|
||||
local bnot = bit32 and bit32.bnot or bit.bnot
|
||||
local bxor = bit32 and bit32.bxor or bit.bxor
|
||||
local blshift = bit32 and bit32.lshift or bit.blshift
|
||||
local upack = unpack
|
||||
local upack = unpack or table.unpack
|
||||
|
||||
local function rrotate(n, b)
|
||||
local s = n/(2^b)
|
||||
@@ -95,9 +95,9 @@ local function digestblock(w, C)
|
||||
end
|
||||
|
||||
local mt = {
|
||||
__tostring = function(a) return string.char(unpack(a)) end,
|
||||
__tostring = function(a) return string.char(upack(a)) end,
|
||||
__index = {
|
||||
toHex = function(self) return ("%02x"):rep(#self):format(unpack(self)) end,
|
||||
toHex = function(self) return ("%02x"):rep(#self):format(upack(self)) end,
|
||||
isEqual = function(self, t)
|
||||
if type(t) ~= "table" then return false end
|
||||
if #self ~= #t then return false end
|
||||
|
||||
@@ -21,7 +21,7 @@ end
|
||||
|
||||
function Util.byteArrayToHex(tbl)
|
||||
if not tbl then error('byteArrayToHex: invalid table', 2) end
|
||||
return ("%02x"):rep(#tbl):format(unpack(tbl))
|
||||
return ("%02x"):rep(#tbl):format(table.unpack(tbl))
|
||||
end
|
||||
|
||||
function Util.tryTimed(timeout, f, ...)
|
||||
@@ -39,10 +39,10 @@ function Util.tryTimes(attempts, f, ...)
|
||||
for _ = 1, attempts do
|
||||
result = { f(...) }
|
||||
if result[1] then
|
||||
return unpack(result)
|
||||
return table.unpack(result)
|
||||
end
|
||||
end
|
||||
return unpack(result)
|
||||
return table.unpack(result)
|
||||
end
|
||||
|
||||
function Util.timer()
|
||||
@@ -490,7 +490,7 @@ function Util.loadTable(fname)
|
||||
if not fc then
|
||||
return false, 'Unable to read file'
|
||||
end
|
||||
local s, m = loadstring('return ' .. fc, fname)
|
||||
local s, m = load('return ' .. fc, fname)
|
||||
if s then
|
||||
s, m = pcall(s)
|
||||
if s then
|
||||
@@ -551,8 +551,9 @@ function Util.run(env, path, ...)
|
||||
end
|
||||
|
||||
function Util.runFunction(env, fn, ...)
|
||||
setfenv(fn, env)
|
||||
--setfenv(fn, env)
|
||||
setmetatable(env, { __index = _G })
|
||||
fn = load(fn,"util.runfunction",nil,env)
|
||||
return pcall(fn, ...)
|
||||
end
|
||||
|
||||
|
||||
Reference in New Issue
Block a user