summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHayden Hamilton <hayden@hhvn.uk>2026-05-24 22:26:46 +0100
committerHayden Hamilton <hayden@hhvn.uk>2026-05-24 22:45:29 +0100
commit5013f322b444e653b5c403d3985407569aacc613 (patch)
treec08d53d4650791f7d99261190e935e420531632e
parente5772ae9f939ce73e9fedd295248f46b1190ac33 (diff)
Create dkim/reconfig-smtpd
-rwxr-xr-xdkim/reconfig-smtpd39
1 files changed, 39 insertions, 0 deletions
diff --git a/dkim/reconfig-smtpd b/dkim/reconfig-smtpd
new file mode 100755
index 0000000..a7edd82
--- /dev/null
+++ b/dkim/reconfig-smtpd
@@ -0,0 +1,39 @@
+#!/bin/rc -e
+
+# This script reconfigures and reloads smtpd to use the provided info.
+
+mdir = /etc/mail
+ddir = $mdir/dkim
+conf = $mdir/smtpd.conf
+duser = _dkimsign
+rsapriv = $1
+edpriv = $2
+domain = $3
+selector = `$nl{basename $rsapriv | sed 's/\..*//'}
+telltale = '#added by reconfig-smtpd'
+
+fn err {
+ echo $* >[1=2]
+}
+
+if (~ $#* 2 || ~ $#* 3) { } else {
+ err 'usage: reconfig-smtpd <rsakey> <ed25519key> [domain]'
+ exit 2
+}
+
+if (~ $domain ()) {
+ domain = `hostname
+}
+
+doas sed -ibkp '/' ^ $telltale ^ '/d' $conf
+
+
+{
+ printf 'filter dkimsign_rsa proc-exec "filter-dkimsign -d %s -s %s -k %s" user %s group %s %s\n' \
+ $domain $selector $rsapriv $duser $duser $telltale
+ printf 'filter dkimsign_ed25519 proc-exec "filter-dkimsign -a ed25519-sha256 -d %s -s %s -k %s" user %s group %s %s\n' \
+ $domain $selector $edpriv $duser $duser $telltale
+ cat $conf
+} | doas tee $conf >/dev/null
+
+doas rcctl restart smtpd