First pass at verify utility
Getty Ritter
10 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 |