summary refs log tree commit diff
path: root/contrib/msign
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/msign')
-rwxr-xr-xcontrib/msign22
1 files changed, 22 insertions, 0 deletions
diff --git a/contrib/msign b/contrib/msign
new file mode 100755
index 0000000..9add078
--- /dev/null
+++ b/contrib/msign
@@ -0,0 +1,22 @@
+#!/bin/sh
+# msign PLAINMSG - generate a PGP/MIME signed message
+
+[ -f "$1" ] || exit 1
+
+IFS='
+'
+
+TMPD=$(mktemp -d -t msign.XXXXXX)
+trap "rm -rf '$TMPD'" INT TERM EXIT
+
+awk '/^$/,0' "$1" | mmime | sed 's/$/
/' >"$TMPD"/content
+gpg --armor --detach-sign -o "$TMPD"/signature.asc "$TMPD"/content ||
+	exit $?
+
+{
+	sed '/^$/q' "$1"
+	printf '#mblaze/raw %s/content\n' "$TMPD"
+	printf '#application/pgp-signature %s/signature.asc\n' "$TMPD"
+} |
+	mmime -t 'multipart/signed; micalg="pgp-sha1"; protocol="application/pgp-signature"'
+