summaryrefslogtreecommitdiff
path: root/dkim/reconfig-smtpd
blob: 87b543adaf5bf93a30a41a1838c03af60c754477 (plain)
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
#!/bin/rc -ex

# 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 (test $#* -gt 3 || test $#* -lt 2) {
	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 ed$selector $edpriv $duser $duser $telltale
	cat $conf
} | doas tee $conf >/dev/null

doas rcctl restart smtpd