summaryrefslogtreecommitdiff
path: root/dkim
diff options
context:
space:
mode:
authorHayden Hamilton <hayden@hhvn.uk>2026-05-24 21:10:40 +0100
committerHayden Hamilton <hayden@hhvn.uk>2026-05-24 21:10:40 +0100
commit309d2c88123200a10b40ff335efc8416764c599a (patch)
tree0b1081a6d0ce8eab58b3a6f793cf9b7ccfc78761 /dkim
parent315fb2e8e36e973f547ec6a5a2883569f12193c5 (diff)
dkim/mkcert: better descript + list files on stdout
Diffstat (limited to 'dkim')
-rwxr-xr-xdkim/mkcert31
1 files changed, 26 insertions, 5 deletions
diff --git a/dkim/mkcert b/dkim/mkcert
index 971496f..96c1637 100755
--- a/dkim/mkcert
+++ b/dkim/mkcert
@@ -1,6 +1,17 @@
#!/bin/rc
# This script generates and stores DKIM keypair, using the correct user
+# It outputs all paths generated in the following order:
+# - privkey
+# - pubkey
+# - txt record to be used in dns
+#
+# Example/intended usage:
+# dkimfiles = `$nl{dkim/mkcert <selector>}
+# privkey = $dkimfiles(1)
+# txtfile = $dkimfiles(2)
+#
+# There is no real need for the pubkey to be stored as its own file.
dir = /etc/mail/dkim
user =_dkimsign_
@@ -9,19 +20,18 @@ privkey = $dir/$selector.priv.key
pubkey = $dir/$selector.pub.key
txt = $dir/$selector.txt
-if (!~ $#* 1) {
- echo 'usage: mkcert <selector>'
- exit 2
+fn err {
+ echo $* >[1=2]
}
fn die {
- echo fatal error: $* >[1=2]
+ err fatal error: $*
exit 1
}
fn mustsucceed {
if (!$*) {
- echo fatal error: essential command failed >[1=2]
+ err fatal error: essential command failed
cleanupfailed
exit 1
}
@@ -37,6 +47,12 @@ fn as {
doas -u _dkimsign $*
}
+if (!~ $#* 1) {
+ err 'usage: mkcert <selector>'
+ exit 2
+}
+
+
as test -e $privkey && die $privkey already exists
as test -e $pubkey && die $pubkey already exists
as test -e $txt && die $txt already exists
@@ -49,3 +65,8 @@ mustsucceed as openssl rsa -in $privkey -pubout | \
mustsucceed as cat $pubkey | \
mustsucceed as sed '1s/.*/v=DKIM1;p=/;:nl;${s/-----.*//;q;};N;s/\n//g;b nl;' | \
mustsucceed as tee $txt >/dev/null
+
+err 'Paths generated (privkey, pubkey, txt dns record):'
+echo $privkey
+echo $pubkey
+echo $txt