| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | #!/bin/shset -euif test "$1" = "" ; then    echo "I need a package as an argument."    exit 1fiPACKAGEFILE=$1if test ! -f "$PACKAGEFILE" ; then    echo "$PACKAGEFILE is not a file."    exit 1fiDIGESTNAME=sha256DIGESTOUTPUT=`gpg --print-md $DIGESTNAME $PACKAGEFILE`RAWDIGEST=`gpg --print-md $DIGESTNAME $PACKAGEFILE | sed -e 's/^[^ ]*: //' `# These regexes are a little fragile, but I think they work for us.VERSION=`echo $PACKAGEFILE | sed -e 's/^[a-z\-]*//' -e 's/\.[\.a-z]*$//' `PACKAGE=`echo $PACKAGEFILE | sed -e 's/-[0-9].*//'`SIGFILE_UNSIGNED="$PACKAGE-$VERSION-signature"SIGNATUREFILE="$SIGFILE_UNSIGNED.asc"cat >$SIGFILE_UNSIGNED <<EOFThis is the signature file for "$PACKAGEFILE",which contains version "$VERSION" of "$PACKAGE".Here's how to check this signature.1) Make sure that this is really a signature file, and not a forgery,   with:     "gpg --verify $SIGNATUREFILE"   The key should be one of the keys that signs the Tor release; the   official Tor website has more information on those.   If this step fails, then either you are missing the correct key, or   this signature file was not really signed by a Tor packager.   Beware!2) Make sure that the package you wanted is indeed "$PACKAGE", and that   its version you wanted is indeed "$VERSION".  If you wanted a   different package, or a different version, this signature file is   not the right one!3) Now that you're sure you have the right signature file, make sure   that you got the right package.  Check its $DIGESTNAME digest with     "gpg --print-md $DIGESTNAME $PACKAGEFILE"   The output should match this, exactly:$DIGESTOUTPUT   Make sure that every part of the output matches: don't just check the   first few characters.  If the digest does not match, you do not have   the right package file.  It could even be a forgery.Frequently asked questions:Q: Why not just sign the package file, like you used to do?A: GPG signatures authenticate file contents, but not file names.  If   somebody gave you a renamed file with a matching renamed signature   file, the signature would still be given as "valid".-- FILENAME: $PACKAGEFILEPACKAGE: $PACKAGEVERSION: $VERSIONDIGESTALG: $DIGESTNAMEDIGEST: $RAWDIGESTEOFgpg --clearsign $SIGFILE_UNSIGNED
 |