# will be removed and any "From " line will be indented for
# best compatibility. Enforced for multipart messages.
-usage="Usage: mhsign [-encrypt] [-mime] file"
+usage="Usage: mhsign [-encrypt] [-mime] [-Version] [-help] file"
# defaults
usemime=n
userid="`mhparam pgpkey`"
fi
if [ -z "$userid" ] ; then
- userid="`gpg --list-secret-keys --with-colons 2>/dev/null |
- sed -n '/^sec/{p;q;}' | cut -d: -f5`"
+ userid="`gpg --list-secret-keys --with-colons --fixed-list-mode \
+ 2>/dev/null |
+ grep '^sec' | sort -t: -k3,3nr -k 6,6nr |
+ awk -F: '
+ $7=="" || $7 > "'"\`date +%s\`"'" {
+ print $5; exit;
+ }
+ '`"
fi
if [ -z "$userid" ] ; then
echo "No secret key found" >&2
return 0
}
+### Do a best guess at FQDN
+mh_hostname()
+{
+ hostname -f 2>/dev/null || uname -n
+}
+
### lookupkeys file -- set $KL to list of recipient keys
lookupkeys() {
KL=
echo "Encryption is not supported for BCCs" >&2
return 1
fi
-
- for i in `whom -ali -tocc -nobcc "$1"` ; do
+
+ # extract the actual address
+ format='%<{error}%{error}: %{text}%|%(addr{text})%>'
+ addresses=`whom -ali -tocc -nobcc "$1" |sed 's_$_,_'`
+ addresses=`%libdir%/ap -form "=$format" "$addresses"`
+
+ for i in $addresses ; do
case "$i" in
'|'*) echo "Ignoring pipe address" >&2
continue ;;
*@*) ;;
- *) i="$i@`hostname -f`" ;;
+ *) i="$i@`mh_hostname`" ;;
esac
if k=`lookupkeyfile "$i"` ; then
KL="$KL $k"