From 72e76a59422f7be3138ed5ac64c9a99f1ad46b95 Mon Sep 17 00:00:00 2001 From: bjuthang Date: Mon, 21 Mar 2016 11:02:27 +0800 Subject: [PATCH] Update aeslua.lua 1. change it to module ,use e.g. : local my_aeslua = require("util.aeslua") --local decode_aes_value = my_aeslua.decrypt(key, decode_base64_value, 32, 1) local decode_aes_value = my_aeslua.decrypt(key, decode_base64_value, my_aeslua.public.AES256, my_aeslua.public.ECBMODE) 2. do not padByteString or unpadByteString 3. extension key --- src/aeslua.lua | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/aeslua.lua b/src/aeslua.lua index a18573e..ab110e8 100644 --- a/src/aeslua.lua +++ b/src/aeslua.lua @@ -1,3 +1,5 @@ +local _M = { _VERSION = "0.0.1" } + local private = {}; local public = {}; aeslua = public; @@ -18,6 +20,8 @@ public.CBCMODE = 2; public.OFBMODE = 3; public.CFBMODE = 4; +_M.public = public + function private.pwToKey(password, keyLength) local padLength = keyLength; if (keyLength == public.AES192) then @@ -27,7 +31,8 @@ function private.pwToKey(password, keyLength) if (padLength > #password) then local postfix = ""; for i = 1,padLength - #password do - postfix = postfix .. string.char(0); + --postfix = postfix .. string.char(0); + postfix = postfix .. "0"; end password = password .. postfix; else @@ -51,7 +56,7 @@ end -- -- mode and keyLength must be the same for encryption and decryption. -- -function public.encrypt(password, data, keyLength, mode) +function _M.encrypt(password, data, keyLength, mode) assert(password ~= nil, "Empty password."); assert(password ~= nil, "Empty data."); @@ -60,7 +65,8 @@ function public.encrypt(password, data, keyLength, mode) local key = private.pwToKey(password, keyLength); - local paddedData = util.padByteString(data); + --local paddedData = util.padByteString(data); + local paddedData = data; if (mode == public.ECBMODE) then return ciphermode.encryptString(key, paddedData, ciphermode.encryptECB); @@ -87,7 +93,7 @@ end -- -- mode and keyLength must be the same for encryption and decryption. -- -function public.decrypt(password, data, keyLength, mode) +function _M.decrypt(password, data, keyLength, mode) local mode = mode or public.CBCMODE; local keyLength = keyLength or public.AES128; @@ -104,6 +110,8 @@ function public.decrypt(password, data, keyLength, mode) plain = ciphermode.decryptString(key, data, ciphermode.decryptCFB); end + return plain + --[[ result = util.unpadByteString(plain); if (result == nil) then @@ -111,4 +119,6 @@ function public.decrypt(password, data, keyLength, mode) end return result; + --]] end +return _M