36 lines
715 B
Lua
36 lines
715 B
Lua
|
local real_aes = require("resty.easy-crypto")
|
||
|
|
||
|
local function new(_)
|
||
|
local fake_instance = {}
|
||
|
|
||
|
function fake_instance:encrypt(key, _, data, _, _)
|
||
|
local aes = real_aes:new({
|
||
|
saltSize = 16,
|
||
|
ivSize = 12,
|
||
|
iterationCount = 2,
|
||
|
})
|
||
|
local encrypted = assert(aes:encrypt(key, data))
|
||
|
self.tag = encrypted:sub(-16)
|
||
|
return encrypted:sub(1, -17), nil
|
||
|
end
|
||
|
|
||
|
function fake_instance:get_aead_tag()
|
||
|
return self.tag
|
||
|
end
|
||
|
|
||
|
function fake_instance:decrypt(key, _, data, _, _, tag)
|
||
|
local aes = real_aes:new({
|
||
|
saltSize = 16,
|
||
|
ivSize = 12,
|
||
|
iterationCount = 2,
|
||
|
})
|
||
|
return aes:decrypt(key, data .. tag)
|
||
|
end
|
||
|
|
||
|
return fake_instance
|
||
|
end
|
||
|
|
||
|
return {
|
||
|
new = new,
|
||
|
}
|