summaryrefslogtreecommitdiff
path: root/dkim/reconfig-smtpd
blob: a7edd826bc70c5fef7fbd6ca09afe3680317bb03 (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 -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