Browse Source
feat: Add ED25519 support for DKIM signing and verification
feat: Add ED25519 support for DKIM signing and verification
This commit introduces support for ED25519 keys in DKIM signing and verification. It includes changes to the DKIM library to handle ED25519 keys, along with new test cases and configuration files to demonstrate and test this functionality. Co-authored-by: Vsevolod Stakhov <v@rspamd.com>pull/5664/head
No known key found for this signature in database
GPG Key ID: 7647B6790081437
4 changed files with 140 additions and 2 deletions
-
67src/libserver/dkim.c
-
6test/functional/cases/116_dkim.robot
-
66test/functional/configs/dkim-ed25519-pem.conf
-
3test/functional/configs/dkim-eddsa-pem.key
@ -0,0 +1,66 @@ |
|||
.include(duplicate=append,priority=0) "{= env.TESTDIR =}/configs/plugins.conf" |
|||
|
|||
options = { |
|||
filters = ["dkim"] |
|||
pidfile = "{= env.TMPDIR =}/rspamd.pid" |
|||
dns { |
|||
retransmits = 10; |
|||
timeout = 2s; |
|||
} |
|||
} |
|||
logging = { |
|||
type = "file", |
|||
level = "debug" |
|||
filename = "{= env.TMPDIR =}/rspamd.log" |
|||
} |
|||
metric = { |
|||
name = "default", |
|||
actions = { |
|||
reject = 100500, |
|||
} |
|||
unknown_weight = 1 |
|||
} |
|||
|
|||
worker { |
|||
type = normal |
|||
bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_NORMAL =}" |
|||
count = 1 |
|||
keypair { |
|||
pubkey = "{= env.KEY_PUB1 =}"; |
|||
privkey = "{= env.KEY_PVT1 =}"; |
|||
} |
|||
task_timeout = 60s; |
|||
} |
|||
|
|||
worker { |
|||
type = controller |
|||
bind_socket = "{= env.LOCAL_ADDR =}:{= env.PORT_CONTROLLER =}" |
|||
count = 1 |
|||
secure_ip = ["127.0.0.1", "::1"]; |
|||
stats_path = "{= env.TMPDIR =}/stats.ucl" |
|||
} |
|||
|
|||
dkim { |
|||
|
|||
sign_condition =<<EOD |
|||
return function(task) |
|||
local dodkim = task:get_request_header('dodkim') |
|||
if not dodkim then return end |
|||
return { |
|||
key = "{= env.TESTDIR =}/configs/dkim-eddsa-pem.key", |
|||
domain = "cacophony.za.org", |
|||
selector = "dkim" |
|||
} |
|||
end |
|||
EOD; |
|||
|
|||
dkim_cache_size = 2k; |
|||
dkim_cache_expire = 1d; |
|||
time_jitter = 6h; |
|||
trusted_only = false; |
|||
skip_multi = false; |
|||
} |
|||
modules { |
|||
path = "{= env.TESTDIR =}/../../src/plugins/lua/" |
|||
} |
|||
lua = "{= env.TESTDIR =}/lua/test_coverage.lua"; |
@ -0,0 +1,3 @@ |
|||
-----BEGIN PRIVATE KEY----- |
|||
MC4CAQAwBQYDK2VwBCIEIPwynGQ23nIwwKJYgLULTADkL+L4fAPEtSWjNYA6PPSo |
|||
-----END PRIVATE KEY----- |
Write
Preview
Loading…
Cancel
Save
Reference in new issue