summaryrefslogtreecommitdiff
path: root/dkim/rmcert
blob: 33add52cfae010962e3794a24fba03168b874830 (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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
#!/bin/rc

# This script removes a DKIM keypair generated by dkim/mkcert

dir      = /etc/mail/dkim
user     = _dkimsign
selector = $1
ed       = ed25519
rsaprivkey  = $dir/$selector.priv.key
pubkey   = $dir/$selector.pub.key
txt      = $dir/$selector.txt

files = ( $dir/$selector.rsa.priv.key \
          $dir/$selector.rsa.pub.key  \
          $dir/$selector.rsa.txt      \
          $dir/$selector.$ed.priv.key \
          $dir/$selector.$ed.pub.key  \
          $dir/$selector.$ed.txt      )

fn err {
	echo $* >[1=2]
}

fn as {
	doas -u $user $*
}

fn removeif-e {
	if (as test -e $1) {
		if (as rm $1) {
			removed = ($removed $1)
		} else {
			failed = ($failed $1)
		}
	}
}

if (!~ $#* 1) {
	echo 'usage: mkcert <selector>'
	exit 2
}

for (f in $files) {
	removeif-e $f
}

if (~ $removed () && ~ $failed ()) {
	err no such selector: $selector
	exit 1
}

if (!~ $removed ()) {
	err removed: $removed
}

if (!~ $failed ()) {
	err failed to remove: $failed
	exit 1
}