chiark / gitweb /
More error handling: set -e, set -o pipefail
[modbot-mtm.git] / stump / bin / verifySignature
1 #!/bin/bash
2
3 set -e
4 set -o pipefail
5
6 # $Id: verifySignature,v 1.2 2007/05/03 23:50:21 rram Exp $
7 # Modified to work with GPG
8
9 NAME="$1"
10
11 TMPFILE=$TMP/vrfy.$$
12
13 cat > $TMPFILE
14
15 if grep -e "^$BEGIN_PGP_SIGNED_MESSAGE" < $TMPFILE >/dev/null; then
16   SIGNED="YES"
17 else
18   SIGNED="NO"
19 fi
20
21 if [ $SIGNED = "NO" ] ; then 
22   if [ "x$1" != "x" ] ; then
23     echo "No valid sig!" 1>&2
24     rm $TMPFILE
25     exit 1
26   else 
27     rm $TMPFILE
28     exit 0
29   fi
30 fi
31
32 #
33 # this we do under assumption that message IS signed
34 #
35
36 GOODSIG="gpg: Good signature from \""
37
38 DoPGP() {
39 #  stump-pgp -f +batchmode=on +pubring=$MNG_ROOT/data/pubring.pgp < $TMPFILE 2>&1 > /dev/null
40    stump-pgp --no-default-keyring --keyring $MNG_ROOT/data/pubring.gpg < $TMPFILE 2>&1 > /dev/null
41 }
42
43 USERID="`DoPGP | grep -e "^$GOODSIG" | sed \"s/^$GOODSIG//\" | sed 's/"\.$//'`"
44
45
46 rm $TMPFILE
47
48 echo USERID = "$USERID" 1>&2
49
50 if [ "x$1" != "x" ]; then
51   if [ "$USERID" = "$1" ] ; then
52     exit 0
53   else
54     exit 1
55   fi
56 else
57   if [ "x$USERID" = "x" ]; then # bad sig!
58     exit 1;
59   fi
60
61   echo "$USERID"
62   exit 0
63 fi