@@ -0,0 +1,24 @@ | |||
*** Settings *** | |||
Suite Setup Generic Setup | |||
Suite Teardown Generic Teardown | |||
Library ${TESTDIR}/lib/rspamd.py | |||
Resource ${TESTDIR}/lib/rspamd.robot | |||
Variables ${TESTDIR}/lib/vars.py | |||
*** Variables *** | |||
${CONFIG} ${TESTDIR}/configs/dkim.conf | |||
${RSPAMD_SCOPE} Suite | |||
*** Test Cases *** | |||
DKIM Sign | |||
Set Suite Variable ${RAN_SIGNTEST} 0 | |||
${result} = Scan Message With Rspamc ${TESTDIR}/messages/spam_message.eml --mime --header=dodkim=1 | |||
Check Rspamc ${result} DKIM-Signature | |||
Set Suite Variable ${SIGNED_MESSAGE} ${TMPDIR}/dkim_sign_test.eml | |||
Create File ${SIGNED_MESSAGE} ${result.stdout} | |||
Set Suite Variable ${RAN_SIGNTEST} 1 | |||
DKIM Self Verify | |||
Run Keyword If ${RAN_SIGNTEST} == 0 Fail "Sign test was not run" | |||
${result} = Scan Message With Rspamc ${SIGNED_MESSAGE} | |||
Check Rspamc ${result} R_DKIM_ALLOW |
@@ -0,0 +1,47 @@ | |||
options = { | |||
filters = ["dkim"] | |||
pidfile = "${TMPDIR}/rspamd.pid" | |||
} | |||
logging = { | |||
type = "file", | |||
level = "debug" | |||
filename = "${TMPDIR}/rspamd.log" | |||
} | |||
metric = { | |||
name = "default", | |||
actions = { | |||
reject = 100500, | |||
} | |||
unknown_weight = 1 | |||
} | |||
worker { | |||
type = normal | |||
bind_socket = ${LOCAL_ADDR}:${PORT_NORMAL} | |||
count = 1 | |||
keypair { | |||
pubkey = "${KEY_PUB1}"; | |||
privkey = "${KEY_PVT1}"; | |||
} | |||
} | |||
dkim { | |||
sign_condition =<<EOD | |||
return function(task) | |||
local dodkim = task:get_request_header('dodkim') | |||
if not dodkim then return end | |||
return { | |||
key = "${TESTDIR}/configs/dkim.key", | |||
domain = "rspamd.tk", | |||
selector = "testdkim" | |||
} | |||
end | |||
EOD; | |||
dkim_cache_size = 2k; | |||
dkim_cache_expire = 1d; | |||
time_jitter = 6h; | |||
trusted_only = false; | |||
skip_multi = false; | |||
} |
@@ -0,0 +1,16 @@ | |||
-----BEGIN PRIVATE KEY----- | |||
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBANe3EETkiI1Exyrb | |||
+VzbMSt90K8MXJA0GcyNs6MFCs9JPaTh90Zu2l7ki7m5LTUx6350AR/3hcvwjSHC | |||
ZjD6fvQ8/zfjN8kaLZ6DAaqtqSlpawIM+8glkuTEkIkpBED/OtDrba4Rd29iLFVu | |||
wQZXDtTjAAZKZPmtTZ5TXLrcCU6VAgMBAAECgYEA1BFvmBsIN8Gu/+6kNupya2xU | |||
NVM0yLu/xT5lpNV3LBO325oejAq8+d87kkl/LTW3a2jGFlQ0ICuLw+2mo24QUWRy | |||
v8if3oeBMlnLqHE+6wNjFVqo5sOjKzjO363xSXwXNUrBT7jDhnZcDN8w3/FecYKj | |||
ifGTVtUs1SLsYwhlc8ECQQDuCRymLZQ/imPn5eFVIydwUzg8ptZlvoA7bfIxUL9B | |||
QRX33s59kLCilA0tTed8Dd+GnxsT93XOj1ApIfBwmTSlAkEA5/63PDsN7fH+WInq | |||
VD8nU07M9S8LcGDlPbVVBr2S2I78/iwrSDAYtbkU2vEbhFK/JuKNML2j8OkzV3v1 | |||
QulfMQJBALDzhx+l/HHr3+8RPhx7QKNIyiKUaAdEwbDsP8IXY8YPq1QThu9jM1v4 | |||
sX7/TdkzuvoppwiFykbe1NlvCH279p0CQCmTg4Ee0DtBcCSr6rvYaZLLf329RZ6J | |||
LuwlMCy6ErQOxBZFEiiovfTrS2qFZToMnkc4uLbwdY36LQJTq7unGTECQCCok8Lz | |||
BeZtAw+TJofpOM3F2Rlm2qXiBVBeubhRedsiljG0hpvvLJBMppnQ6r27p5Jk39Sm | |||
aTRkxEKrxPWWLNM= | |||
-----END PRIVATE KEY----- |