Add scripts from mblaze/contrib
Directly from tag v6.0, e0733f187b34b21fa8335b9914c29a28fa2e856d.
This commit is contained in:
parent
69e00b6f58
commit
eb605487e5
@ -15,20 +15,22 @@
|
|||||||
PREFIX = ${HOME}/.mblaze
|
PREFIX = ${HOME}/.mblaze
|
||||||
|
|
||||||
BIN = m mless
|
BIN = m mless
|
||||||
|
CONTRIB = contrib/mencrypt contrib/mgpg contrib/msign contrib/mverify
|
||||||
|
|
||||||
all: ${BIN}
|
all: ${BIN}
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f ${BIN}
|
rm -f ${BIN}
|
||||||
|
|
||||||
install: all env mlesskey mless-key-handler
|
install: all env mlesskey mless-key-handler ${CONTRIB}
|
||||||
mkdir -pm 700 ${PREFIX}
|
mkdir -pm 700 ${PREFIX}
|
||||||
lesskey -o ${PREFIX}/mless mlesskey
|
lesskey -o ${PREFIX}/mless mlesskey
|
||||||
cp -f env mless-key-handler ${PREFIX}
|
cp -f env mless-key-handler ${PREFIX}
|
||||||
mkdir -p ${PREFIX}/bin
|
mkdir -p ${PREFIX}/bin
|
||||||
cp -f ${BIN} ${PREFIX}/bin
|
cp -f ${BIN} ${PREFIX}/bin
|
||||||
|
cp -f ${CONTRIB} ${PREFIX}/bin
|
||||||
cd ${PREFIX}/bin && chmod 555 ${BIN}
|
cd ${PREFIX}/bin && chmod 555 ${BIN}
|
||||||
|
|
||||||
uninstall:
|
uninstall:
|
||||||
cd ${PREFIX}/bin && rm -f ${BIN}
|
cd ${PREFIX}/bin && rm -f ${BIN} ${CONTRIB}
|
||||||
rm -f ${PREFIX}/env ${PREFIX}/mless ${PREFIX}/mless-key-handler
|
rm -f ${PREFIX}/env ${PREFIX}/mless ${PREFIX}/mless-key-handler
|
||||||
|
28
mblaze/contrib/mencrypt
Executable file
28
mblaze/contrib/mencrypt
Executable file
@ -0,0 +1,28 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# mencrypt PLAINMSG - generate a PGP/MIME signed and encrypted message
|
||||||
|
|
||||||
|
[ -f "$1" ] || exit 1
|
||||||
|
|
||||||
|
IFS='
|
||||||
|
'
|
||||||
|
FLAGS=$(maddr -a -h from:to:cc:bcc: "$1" |sort -u |sed 's/^/--recipient=/')
|
||||||
|
|
||||||
|
FROM=$(maddr -a -h from "$1" | sed 1q)
|
||||||
|
[ "$FROM" ] && key="--default-key=$FROM"
|
||||||
|
|
||||||
|
TMPD=$(mktemp -d -t mencrypt.XXXXXX)
|
||||||
|
trap "rm -rf '$TMPD'" INT TERM EXIT
|
||||||
|
|
||||||
|
awk '/^$/,0' "$1" |
|
||||||
|
mmime |
|
||||||
|
gpg2 "$key" --armor --encrypt --sign $FLAGS -o "$TMPD/msg.asc" ||
|
||||||
|
exit $?
|
||||||
|
|
||||||
|
printf 'Version: 1\n' >"$TMPD/version"
|
||||||
|
|
||||||
|
{
|
||||||
|
sed '/^$/q' "$1"
|
||||||
|
printf '#application/pgp-encrypted %s/version\n' "$TMPD"
|
||||||
|
printf '#application/octet-stream %s/msg.asc\n' "$TMPD"
|
||||||
|
} |
|
||||||
|
mmime -t 'multipart/encrypted; protocol="application/pgp-encrypted"'
|
20
mblaze/contrib/mgpg
Executable file
20
mblaze/contrib/mgpg
Executable file
@ -0,0 +1,20 @@
|
|||||||
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
tmp=$(mktemp -t mgpg.XXXXXX)
|
||||||
|
trap "rm -f '$tmp'" INT TERM EXIT
|
||||||
|
|
||||||
|
{
|
||||||
|
echo "Content-Type: $PIPE_CONTENTTYPE"
|
||||||
|
echo
|
||||||
|
cat
|
||||||
|
} > "$tmp"
|
||||||
|
|
||||||
|
n=$(mshow -t "$tmp" | awk -F: '
|
||||||
|
/: application\/pgp-encrypted/ {supported = 1}
|
||||||
|
/: application\/octet-stream/ {if (supported) print $1}')
|
||||||
|
|
||||||
|
if [ "$n" ]; then
|
||||||
|
mshow -O "$tmp" "$n" | gpg2 -d 2>&1 || exit 0
|
||||||
|
exit 64
|
||||||
|
fi
|
||||||
|
exit 63
|
25
mblaze/contrib/msign
Executable file
25
mblaze/contrib/msign
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
#!/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
|
||||||
|
|
||||||
|
FROM=$(maddr -a -h from "$1" | sed 1q)
|
||||||
|
[ "$FROM" ] && key="--default-key=$FROM"
|
||||||
|
|
||||||
|
awk '/^$/,0' "$1" | mmime | sed 's/$/
/' >"$TMPD"/content
|
||||||
|
gpg2 $key --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"'
|
||||||
|
|
34
mblaze/contrib/mverify
Executable file
34
mblaze/contrib/mverify
Executable file
@ -0,0 +1,34 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# mverify MSG - verify a OpenPGP or SMIME message
|
||||||
|
|
||||||
|
# Needs gpg2 (for OpenPGP) and openssl (for SMIME).
|
||||||
|
|
||||||
|
[ "$#" -eq 0 ] && set -- .
|
||||||
|
|
||||||
|
mshow -t "$1" | DOS2UNIX='/
$/!s/$/
/' awk -v "msg=$1" '
|
||||||
|
{ match($0, "^ *"); indent = RLENGTH }
|
||||||
|
$2 == "text/plain" { plain++ }
|
||||||
|
$2 == "multipart/signed" { signed = 0+$1; si = indent; next }
|
||||||
|
signed && !content && indent == si+2 { content = 0+$1; next }
|
||||||
|
signed && content && !signature && indent == si+2 { signature = 0+$1; type = $2 }
|
||||||
|
function q(a) { gsub("\\47", "\47\\\47\47", a); return "\47"a"\47" }
|
||||||
|
END {
|
||||||
|
if (type == "" && plain) { // guess plain text armored signature
|
||||||
|
exit(system("mshow -r " q(msg) " | gpg2 --verify"));
|
||||||
|
} else if (type == "") {
|
||||||
|
print("No signature found.")
|
||||||
|
exit(100)
|
||||||
|
} else if (type == "application/pgp-signature") {
|
||||||
|
exit(system("mshow -r -O " q(msg) " " q(content) \
|
||||||
|
" | sed $DOS2UNIX | " \
|
||||||
|
" { mshow -O " q(msg) " " q(signature) \
|
||||||
|
" | gpg2 --verify - /dev/fd/3; } 3<&0"))
|
||||||
|
} else if (type == "application/pkcs7-signature") {
|
||||||
|
exit(system("mshow -r -O " q(msg) " " q(signed) \
|
||||||
|
" | openssl smime -verify"))
|
||||||
|
} else {
|
||||||
|
print("Cannot verify signatures of type " type ".")
|
||||||
|
exit(2)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
'
|
Loading…
Reference in New Issue
Block a user