1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
local util = require 'lua_util'
context("Lua util - maybe encrypt/decrypt header", function()
test("Encrypt/Decrypt header with nonce", function()
local header = tostring('X-Spamd-Result')
local settings = {
prefix = 'prefix',
prefix_encrypt = true,
prefix_key = 'key',
prefix_nonce = 'nonce'
}
local encrypted_header = util.maybe_encrypt_header(header, settings, settings.prefix)
if encrypted_header == header or encrypted_header == nil then
assert_true(false, 'Failed to encrypt header')
end
local text = string.sub(tostring(encrypted_header), 6)
local decrypted_header = util.maybe_decrypt_header(text, settings, settings.prefix)
if decrypted_header == encrypted_header or decrypted_header == nil then
assert_true(false, 'Failed to decrypt header')
end
if tostring(header) == tostring(decrypted_header) then
assert_true(true, 'Succeed to confirm equality of original header and decrypted header')
else
assert_rspamd_table_eq_sorted({actual = { decrypted_header },
expect = { header }})
end
end)
test("Encrypt/Decrypt header without nonce", function()
local header = tostring('X-Spamd-Result')
local settings = {
prefix = 'prefix',
prefix_encrypt = true,
prefix_key = 'key'
}
local encrypted_header = util.maybe_encrypt_header(header, settings, settings.prefix)
if encrypted_header == header or encrypted_header == nil then
assert_true(false, 'Failed to encrypt header')
end
local nonce = string.sub(tostring(encrypted_header), 1, 24)
local text = string.sub(tostring(encrypted_header), 25)
local decrypted_header = util.maybe_decrypt_header(text, settings, settings.prefix, nonce)
if decrypted_header == encrypted_header or decrypted_header == nil then
assert_true(false, 'Failed to decrypt header')
end
if tostring(header) == tostring(decrypted_header) then
assert_true(true, 'Succeed to confirm equality of original header and decrypted header')
else
assert_rspamd_table_eq_sorted({actual = { decrypted_header },
expect = { header }})
end
end)
end)
|