From 309d2c88123200a10b40ff335efc8416764c599a Mon Sep 17 00:00:00 2001 From: Hayden Hamilton Date: Sun, 24 May 2026 21:10:40 +0100 Subject: dkim/mkcert: better descript + list files on stdout --- dkim/mkcert | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) (limited to 'dkim/mkcert') 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 } +# 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 ' - 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 ' + 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 -- cgit v1.2.3