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:
Kan18
2019-07-20 18:19:30 -04:00
committed by kepler155c
parent 9ce61b5d98
commit 09be81be27
8 changed files with 19 additions and 18 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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