First pass at verify utility
Getty Ritter
9 years ago
Binary diff not shown
1 | #!/bin/sh -e | |
2 | ||
3 | TRUSTDIR=${TRUSTDIR-"$HOME/.trusted"} | |
4 | ||
5 | if [ ! "$(which signify)" ]; then | |
6 | echo "Unable to find signify utility" >&2 | |
7 | exit 111 | |
8 | fi | |
9 | ||
10 | if [ ! "$(ls -A $TRUSTDIR)" ]; then | |
11 | echo "No trusted keys in $TRUSTDIR" >&2 | |
12 | exit 111 | |
13 | fi | |
14 | ||
15 | TGT=`mktemp -d` | |
16 | cd $TGT | |
17 | tar -xf - | |
18 | if [ ! -e ./sig ]; then | |
19 | echo "Malformed data: missing signature" >&2 | |
20 | cd .. && rm -rf $TGT | |
21 | exit 111 | |
22 | elif [ ! -e ./dat ]; then | |
23 | echo "Malformed data: missing payload" >&2 | |
24 | cd .. && rm -rf $TGT | |
25 | exit 111 | |
26 | else | |
27 | for pub in $TRUSTDIR/*; do | |
28 | if signify -Vq -p $pub -m ./dat -x ./sig; then | |
29 | cat ./dat | |
30 | cd / && rm -rf $TGT | |
31 | exit 0 | |
32 | fi | |
33 | done | |
34 | echo "Unable to verify file" >&2 | |
35 | cd .. && rm -rf $TGT | |
36 | exit 111 | |
37 | fi |