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