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)
|