diff options
| author | Andrew Lee <alee14498@protonmail.com> | 2020-11-15 13:44:30 -0500 |
|---|---|---|
| committer | Andrew Lee <alee14498@protonmail.com> | 2020-11-15 13:44:30 -0500 |
| commit | 4e9920482018b652401ec0629ade381c70ae4d4b (patch) | |
| tree | 8e27ce28c3ca4e75864b72f11574c3652cc1b93a /system/apis | |
| parent | bcc38bf864e03522a37ec7a1dc1db953dbe7d473 (diff) | |
| download | bits-UI-4e9920482018b652401ec0629ade381c70ae4d4b.tar.gz bits-UI-4e9920482018b652401ec0629ade381c70ae4d4b.tar.bz2 bits-UI-4e9920482018b652401ec0629ade381c70ae4d4b.zip | |
Removed old system files
Diffstat (limited to 'system/apis')
| -rw-r--r-- | system/apis/flib.lua | 124 | ||||
| -rw-r--r-- | system/apis/json.lua | 209 | ||||
| -rw-r--r-- | system/apis/sha256.lua | 204 |
3 files changed, 0 insertions, 537 deletions
diff --git a/system/apis/flib.lua b/system/apis/flib.lua deleted file mode 100644 index c3b7150..0000000 --- a/system/apis/flib.lua +++ /dev/null @@ -1,124 +0,0 @@ ---[[ - fLib by NDFJay -]]-- -function exists(path) - local file = assert(io.open(path, "r")) - if file ~= nil then - file:close() - return true - end - - return false -end - -function getTable(path) - if exists(path) then - local file = io.open(path, "r") - local lines = {} - local i = 1 - local line = file:read("*l") - while line ~= nil do - lines[i] = line - line = file:read("*l") - i = i + 1 - end - file:close() - return lines - end - return {} -end - -function getLine(path, n) - if exists(path) then - local lines = getTable(path) - return lines[n] - end - return "" -end - -function getText(path) - if exists(path) then - local file = assert(io.open(path, "r")) - return file:read("*a") - end - return "" -end - -function fappend(path, text) - local file = assert(io.open(path, "a")) - file:write(text.."\n") - file:close() -end - -function fwrite(path, text) - local file = assert(io.open(path, "w")) - file:write(text) - file:close() -end - -function fwriteAtStart(path, text) - local _text = getText(path) - fwrite(path, text.."\n".._text) -end - -function fwriteFromTable(path, t) - local text = "" - for _, line in pairs(t) do - text = text..line.."\n" - end - fwrite(path, text) -end - -function fappendFromTable(path, t) - local text = "" - for _, line in pairs(t) do - text = text..line.."\n" - end - fappend(path, text) -end - -function fwriteAtStartFromTable(path, t) - local text = "" - for _, line in pairs(t) do - text = text..line.."\n" - end - fwriteAtStart(path, text) -end - -function replaceLine(path, n, text) - local lines = getTable(path) - lines[n] = text - fwriteFromTable(path, lines) -end - -function getName(path) - if exists(path) then - local lastSlashPos = 1 - for i = 1, path:len() do - if path:sub(i, i) == "/" then - lastSlashPos = i - end - end - - return path:sub(lastSlashPos + 1) - end - return "" -end - -function getPath(path) - if exists(path) then - local lastSlashPos = 1 - for i = 1, path:len() do - if path:sub(i, i) == "/" then - lastSlashPos = i - end - end - - return path:sub(1, lastSlashPos) - end - return "" -end - -function fremove(path) - os.remove(path) -end
\ No newline at end of file diff --git a/system/apis/json.lua b/system/apis/json.lua deleted file mode 100644 index 3bef482..0000000 --- a/system/apis/json.lua +++ /dev/null @@ -1,209 +0,0 @@ ------------------------------------------------------------------- utils -local controls = {["\n"]="\\n", ["\r"]="\\r", ["\t"]="\\t", ["\b"]="\\b", ["\f"]="\\f", ["\""]="\\\"", ["\\"]="\\\\"} - -local function isArray(t) - local max = 0 - for k,v in pairs(t) do - if type(k) ~= "number" then - return false - elseif k > max then - max = k - end - end - return max == #t -end - -local whites = {['\n']=true; ['\r']=true; ['\t']=true; [' ']=true; [',']=true; [':']=true} -function removeWhite(str) - while whites[str:sub(1, 1)] do - str = str:sub(2) - end - return str -end - ------------------------------------------------------------------- encoding - -local function encodeCommon(val, pretty, tabLevel, tTracking) - local str = "" - - -- Tabbing util - local function tab(s) - str = str .. ("\t"):rep(tabLevel) .. s - end - - local function arrEncoding(val, bracket, closeBracket, iterator, loopFunc) - str = str .. bracket - if pretty then - str = str .. "\n" - tabLevel = tabLevel + 1 - end - for k,v in iterator(val) do - tab("") - loopFunc(k,v) - str = str .. "," - if pretty then str = str .. "\n" end - end - if pretty then - tabLevel = tabLevel - 1 - end - if str:sub(-2) == ",\n" then - str = str:sub(1, -3) .. "\n" - elseif str:sub(-1) == "," then - str = str:sub(1, -2) - end - tab(closeBracket) - end - - -- Table encoding - if type(val) == "table" then - assert(not tTracking[val], "Cannot encode a table holding itself recursively") - tTracking[val] = true - if isArray(val) then - arrEncoding(val, "[", "]", ipairs, function(k,v) - str = str .. encodeCommon(v, pretty, tabLevel, tTracking) - end) - else - arrEncoding(val, "{", "}", pairs, function(k,v) - assert(type(k) == "string", "JSON object keys must be strings", 2) - str = str .. encodeCommon(k, pretty, tabLevel, tTracking) - str = str .. (pretty and ": " or ":") .. encodeCommon(v, pretty, tabLevel, tTracking) - end) - end - -- String encoding - elseif type(val) == "string" then - str = '"' .. val:gsub("[%c\"\\]", controls) .. '"' - -- Number encoding - elseif type(val) == "number" or type(val) == "boolean" then - str = tostring(val) - else - error("JSON only supports arrays, objects, numbers, booleans, and strings", 2) - end - return str -end - -function encode(val) - return encodeCommon(val, false, 0, {}) -end - -function encodePretty(val) - return encodeCommon(val, true, 0, {}) -end - ------------------------------------------------------------------- decoding - -local decodeControls = {} -for k,v in pairs(controls) do - decodeControls[v] = k -end - -function parseBoolean(str) - if str:sub(1, 4) == "true" then - return true, removeWhite(str:sub(5)) - else - return false, removeWhite(str:sub(6)) - end -end - -function parseNull(str) - return nil, removeWhite(str:sub(5)) -end - -local numChars = {['e']=true; ['E']=true; ['+']=true; ['-']=true; ['.']=true} -function parseNumber(str) - local i = 1 - while numChars[str:sub(i, i)] or tonumber(str:sub(i, i)) do - i = i + 1 - end - local val = tonumber(str:sub(1, i - 1)) - str = removeWhite(str:sub(i)) - return val, str -end - -function parseString(str) - str = str:sub(2) - local s = "" - while str:sub(1,1) ~= "\"" do - local next = str:sub(1,1) - str = str:sub(2) - assert(next ~= "\n", "Unclosed string") - - if next == "\\" then - local escape = str:sub(1,1) - str = str:sub(2) - - next = assert(decodeControls[next..escape], "Invalid escape character") - end - - s = s .. next - end - return s, removeWhite(str:sub(2)) -end - -function parseArray(str) - str = removeWhite(str:sub(2)) - - local val = {} - local i = 1 - while str:sub(1, 1) ~= "]" do - local v = nil - v, str = parseValue(str) - val[i] = v - i = i + 1 - str = removeWhite(str) - end - str = removeWhite(str:sub(2)) - return val, str -end - -function parseObject(str) - str = removeWhite(str:sub(2)) - - local val = {} - while str:sub(1, 1) ~= "}" do - local k, v = nil, nil - k, v, str = parseMember(str) - val[k] = v - str = removeWhite(str) - end - str = removeWhite(str:sub(2)) - return val, str -end - -function parseMember(str) - local k = nil - k, str = parseValue(str) - local val = nil - val, str = parseValue(str) - return k, val, str -end - -function parseValue(str) - local fchar = str:sub(1, 1) - if fchar == "{" then - return parseObject(str) - elseif fchar == "[" then - return parseArray(str) - elseif tonumber(fchar) ~= nil or numChars[fchar] then - return parseNumber(str) - elseif str:sub(1, 4) == "true" or str:sub(1, 5) == "false" then - return parseBoolean(str) - elseif fchar == "\"" then - return parseString(str) - elseif str:sub(1, 4) == "null" then - return parseNull(str) - end - return nil -end - -function decode(str) - str = removeWhite(str) - t = parseValue(str) - return t -end - -function decodeFromFile(path) - local file = assert(fs.open(path, "r")) - local decoded = decode(file.readAll()) - file.close() - return decoded -end
\ No newline at end of file diff --git a/system/apis/sha256.lua b/system/apis/sha256.lua deleted file mode 100644 index 5842c8d..0000000 --- a/system/apis/sha256.lua +++ /dev/null @@ -1,204 +0,0 @@ --- SHA-256, HMAC and PBKDF2 functions in ComputerCraft --- By Anavrins --- For help and details, you can PM me on the CC forums --- http://www.computercraft.info/forums2/index.php?/user/12870-anavrins --- You may use this code in your projects without asking me, as long as credit is given - --- Pastebin: https://pastebin.com/6UV4qfNF --- Usage: https://pastebin.com/q2SQ7eRg --- Last update: May 13, 2019 - -local mod32 = 2^32 -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 function rrotate(n, b) - local s = n/(2^b) - local f = s%1 - return (s-f) + f*mod32 -end - local function brshift(int, by) -- Thanks bit32 for bad rshift - local s = int / (2^by) - return s - s%1 -end - -local H = { - 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, - 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19, -} - -local K = { - 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, - 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, - 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, - 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, - 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, - 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, - 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, - 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2, -} - -local function counter(incr) - local t1, t2 = 0, 0 - if 0xFFFFFFFF - t1 < incr then - t2 = t2 + 1 - t1 = incr - (0xFFFFFFFF - t1) - 1 - else t1 = t1 + incr - end - return t2, t1 -end - -local function BE_toInt(bs, i) - return blshift((bs[i] or 0), 24) + blshift((bs[i+1] or 0), 16) + blshift((bs[i+2] or 0), 8) + (bs[i+3] or 0) -end - -local function preprocess(data) - local len = #data - local proc = {} - data[#data+1] = 0x80 - while #data%64~=56 do data[#data+1] = 0 end - local blocks = math.ceil(#data/64) - for i = 1, blocks do - proc[i] = {} - for j = 1, 16 do - proc[i][j] = BE_toInt(data, 1+((i-1)*64)+((j-1)*4)) - end - end - proc[blocks][15], proc[blocks][16] = counter(len*8) - return proc -end - -local function digestblock(w, C) - for j = 17, 64 do - local v = w[j-15] - local s0 = bxor(bxor(rrotate(w[j-15], 7), rrotate(w[j-15], 18)), brshift(w[j-15], 3)) - local s1 = bxor(bxor(rrotate(w[j-2], 17), rrotate(w[j-2], 19)), brshift(w[j-2], 10)) - w[j] = (w[j-16] + s0 + w[j-7] + s1)%mod32 - end - local a, b, c, d, e, f, g, h = upack(C) - for j = 1, 64 do - local S1 = bxor(bxor(rrotate(e, 6), rrotate(e, 11)), rrotate(e, 25)) - local ch = bxor(band(e, f), band(bnot(e), g)) - local temp1 = (h + S1 + ch + K[j] + w[j])%mod32 - local S0 = bxor(bxor(rrotate(a, 2), rrotate(a, 13)), rrotate(a, 22)) - local maj = bxor(bxor(band(a, b), band(a, c)), band(b, c)) - local temp2 = (S0 + maj)%mod32 - h, g, f, e, d, c, b, a = g, f, e, (d+temp1)%mod32, c, b, a, (temp1+temp2)%mod32 - end - C[1] = (C[1] + a)%mod32 - C[2] = (C[2] + b)%mod32 - C[3] = (C[3] + c)%mod32 - C[4] = (C[4] + d)%mod32 - C[5] = (C[5] + e)%mod32 - C[6] = (C[6] + f)%mod32 - C[7] = (C[7] + g)%mod32 - C[8] = (C[8] + h)%mod32 - return C -end - -local mt = { - __tostring = function(a) return string.char(unpack(a)) end, - __index = { - toHex = function(self, s) return ("%02x"):rep(#self):format(unpack(self)) end, - isEqual = function(self, t) - if type(t) ~= "table" then return false end - if #self ~= #t then return false end - local ret = 0 - for i = 1, #self do - ret = bit32.bor(ret, bxor(self[i], t[i])) - end - return ret == 0 - end - } -} - - function toBytes(t, n) - local b = {} - for i = 1, n do - b[(i-1)*4+1] = band(brshift(t[i], 24), 0xFF) - b[(i-1)*4+2] = band(brshift(t[i], 16), 0xFF) - b[(i-1)*4+3] = band(brshift(t[i], 8), 0xFF) - b[(i-1)*4+4] = band(t[i], 0xFF) - end - return setmetatable(b, mt) -end - - function digest(data) - local data = data or "" - data = type(data) == "table" and {upack(data)} or {tostring(data):byte(1,-1)} - - data = preprocess(data) - local C = {upack(H)} - for i = 1, #data do C = digestblock(data[i], C) end - return toBytes(C, 8) -end - - function hmac(data, key) - local data = type(data) == "table" and {upack(data)} or {tostring(data):byte(1,-1)} - local key = type(key) == "table" and {upack(key)} or {tostring(key):byte(1,-1)} - - local blocksize = 64 - - key = #key > blocksize and digest(key) or key - - local ipad = {} - local opad = {} - local padded_key = {} - - for i = 1, blocksize do - ipad[i] = bxor(0x36, key[i] or 0) - opad[i] = bxor(0x5C, key[i] or 0) - end - - for i = 1, #data do - ipad[blocksize+i] = data[i] - end - - ipad = digest(ipad) - - for i = 1, blocksize do - padded_key[i] = opad[i] - padded_key[blocksize+i] = ipad[i] - end - - return digest(padded_key) -end - - function pbkdf2(pass, salt, iter, dklen) - local salt = type(salt) == "table" and salt or {tostring(salt):byte(1,-1)} - local hashlen = 32 - local dklen = dklen or 32 - local block = 1 - local out = {} - - while dklen > 0 do - local ikey = {} - local isalt = {upack(salt)} - local clen = dklen > hashlen and hashlen or dklen - - isalt[#isalt+1] = band(brshift(block, 24), 0xFF) - isalt[#isalt+1] = band(brshift(block, 16), 0xFF) - isalt[#isalt+1] = band(brshift(block, 8), 0xFF) - isalt[#isalt+1] = band(block, 0xFF) - - for j = 1, iter do - isalt = hmac(isalt, pass) - for k = 1, clen do ikey[k] = bxor(isalt[k], ikey[k] or 0) end - if j % 200 == 0 then os.queueEvent("PBKDF2", j) coroutine.yield("PBKDF2") end - end - dklen = dklen - clen - block = block+1 - for k = 1, clen do out[#out+1] = ikey[k] end - end - - return setmetatable(out, mt) -end - -return { - digest = digest, - hmac = hmac, - pbkdf2 = pbkdf2, -}
\ No newline at end of file |
