1*** Settings ***
2Suite Setup     Rspamd Setup
3Suite Teardown  Rspamd Teardown
4Library         ${RSPAMD_TESTDIR}/lib/rspamd.py
5Resource        ${RSPAMD_TESTDIR}/lib/rspamd.robot
6Variables       ${RSPAMD_TESTDIR}/lib/vars.py
7
8*** Variables ***
9${CONFIG}          ${RSPAMD_TESTDIR}/configs/dkim.conf
10${RSPAMD_SCOPE}    Suite
11${RSPAMD_URL_TLD}  ${RSPAMD_TESTDIR}/../../contrib/publicsuffix/effective_tld_names.dat
12
13*** Test Cases ***
14DKIM PERMFAIL NXDOMAIN
15  Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/bad_dkim2.eml
16  ...  IP=37.48.67.26
17  Expect Symbol  R_DKIM_PERMFAIL
18
19DKIM PERMFAIL BAD RECORD
20  Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/bad_dkim1.eml
21  ...  IP=37.48.67.26
22  Expect Symbol  R_DKIM_PERMFAIL
23
24DKIM TEMPFAIL SERVFAIL UNALIGNED
25  Scan File  ${RSPAMD_TESTDIR}/messages/dmarc/bad_dkim3.eml
26  ...  IP=37.48.67.26
27  Expect Symbol  R_DKIM_TEMPFAIL
28
29DKIM NA NOSIG
30  Scan File  ${RSPAMD_TESTDIR}/messages/utf.eml
31  ...  IP=37.48.67.26
32  Expect Symbol  R_DKIM_NA
33
34DKIM Sign
35  Set Suite Variable  ${RAN_SIGNTEST}  0
36  ${result} =  Scan Message With Rspamc  ${RSPAMD_TESTDIR}/messages/spam_message.eml  --mime  --header=dodkim=1
37  Check Rspamc  ${result}  DKIM-Signature
38  Set Suite Variable  ${SIGNED_MESSAGE}  ${RSPAMD_TMPDIR}/dkim_sign_test.eml
39  Create File  ${SIGNED_MESSAGE}  ${result.stdout}
40  Set Suite Variable  ${RAN_SIGNTEST}  1
41
42DKIM Self Verify
43  Run Keyword If  ${RAN_SIGNTEST} == 0  Fail  "Sign test was not run"
44  Scan File  ${SIGNED_MESSAGE}
45  Expect Symbol  R_DKIM_ALLOW
46
47DKIM Verify ED25519 PASS
48  Scan File  ${RSPAMD_TESTDIR}/messages/ed25519.eml
49  Expect Symbol  R_DKIM_ALLOW
50
51DKIM Verify ED25519 REJECT
52  Scan File  ${RSPAMD_TESTDIR}/messages/ed25519-broken.eml
53  Expect Symbol  R_DKIM_REJECT
54