verify_digest(){ # $0 method file string case "$1" in *) DIGEST=`echo "$1" | tr a-z A-Z` [ "$DIGEST($2)= $3" = "`openssl $1 $2`" ] ;; esac } verify_signature(){ # $0 url|id sig case "$1" in 0x*) gpg --recv-keys "$1" && gpg --verify "$2" ;; *) curl "$1" | gpg --import && gpg --verify "$2" ;; esac } error_out(){ # $0 message ... echo "$@" 1>&2 exit 1 } curl -RO -C - http://ftp.sunet.se/pub/gnu/gmp/gmp-4.1.4.tar.bz2 cat < gmp-4.1.4.tar.bz2.asc -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.5 (FreeBSD) iD8DBQBBUekNXW1H39uJn0YRAsITAKCqG1UODqC48AnALpp2Lw7ZkmnIOACbBPJA 1KtUQffxjgTUF3eUJc2IFY4= =UIYw -----END PGP SIGNATURE----- EOF verify_signature 0xDB899F46 gmp-4.1.4.tar.bz2.asc || error_out "$0: stopped at line $LINENO" tar xvjf gmp-4.1.4.tar.bz2