summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHayden Hamilton <hayden@hhvn.uk>2026-05-24 21:04:39 +0100
committerHayden Hamilton <hayden@hhvn.uk>2026-05-24 21:10:25 +0100
commit315fb2e8e36e973f547ec6a5a2883569f12193c5 (patch)
tree140b41409dc2153b4ba5596737944767d7ad16ff
parente78a391eeac939c32c99edead06a845300a1ceb0 (diff)
Add dkim/rmcert to remove generated certificates
-rwxr-xr-xdkim/rmcert51
1 files changed, 51 insertions, 0 deletions
diff --git a/dkim/rmcert b/dkim/rmcert
new file mode 100755
index 0000000..b5d2b67
--- /dev/null
+++ b/dkim/rmcert
@@ -0,0 +1,51 @@
+#!/bin/rc
+
+# This script removes a DKIM keypair generated by dkim/mkcert
+
+dir = /etc/mail/dkim
+user = _dkimsign
+selector = $1
+privkey = $dir/$selector.priv.key
+pubkey = $dir/$selector.pub.key
+txt = $dir/$selector.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
+}
+
+removeif-e $privkey
+removeif-e $pubkey
+removeif-e $txt
+
+if (~ $removed () && ~ $failed ()) {
+ err no such selector: $selector
+ exit 1
+}
+
+if (!~ $removed ()) {
+ err removed: $removed
+}
+
+if (!~ $failed ()) {
+ err failed to remove: $failed
+ exit 1
+}