<html><head></head><body><div class="yahoo-style-wrap" style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:13px;"><div dir="ltr" data-setdir="false">The following script fails at the verification step. It needs to be run with Bash in a scratch directory.</div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false"><div>command_status() {<br>    if [ $1 = '0' ]; then<br>        echo $'\e[1;32m'Result: Success$'\e[0m'<br>    else<br>        echo $'\e[1;31m'Result: Failure \(exit code = $1\)$'\e[0m'<br>    fi<br>}<br><br>GPG=gpg2<br>rm -rf keys<br>mkdir -p keys<br>chmod 0700 keys<br>killall gpg-agent > /dev/null 2>&1<br>cat << EOF > key_data.txt<br>Key-Type: DSA<br>Key-Length: 1024<br>Subkey-Type: ELG-E<br>Subkey-Length: 2048<br>Name-Comment: A test user<br>Name-Real: Andrew Able<br>Name-Email: andrew.able@example.com<br>Passphrase: aable<br>Expire-Date: 0<br>%commit<br>EOF<br>COMMON_ARGS="--status-fd 2 --no-tty --no-verbose --fixed-list-mode --batch --with-colons --homedir keys"<br>echo $'\e[1;33m'GPG version ...$'\e[0m'<br>${GPG} ${COMMON_ARGS} --version | head -1<br>echo $'\e[1;33m'Generating a key ...$'\e[0m'<br>${GPG} ${COMMON_ARGS} --gen-key < key_data.txt 2>&1 | tee key_info.txt<br>command_status $?<br>KEYID=$(tail -1 key_info.txt | awk  '{ print $(NF)}')<br># echo $'\e[1;33m'Key ID: ${KEYID}$'\e[0m'<br>rm key_data.txt key_info.txt<br>echo $'\e[1;33m'Creating random data to sign ...$'\e[0m'<br>dd if=/dev/urandom of=data-to-sign bs=1 count=1024 > /dev/null 2>&1<br>echo $'\e[1;33m'Signing data, asking for a detached signature ...$'\e[0m'<br>echo aable | ${GPG} --pinentry-mode loopback ${COMMON_ARGS} --passphrase-fd 0 -sa --detach-sign --default-key ${KEYID} | tee sig.asc<br>command_status $?<br>echo $'\e[1;33m'Trying to verify data ...$'\e[0m'<br>${GPG} ${COMMON_ARGS} --verify sig.asc data-to-sign<br>command_status $?<br><br></div><div dir="ltr" data-setdir="false">If I run the above, I get</div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false"><div>GPG version ...<br>gpg (GnuPG) 2.3.6<br>Generating a key ...<br>gpg: keybox '/disk2/vinay/projects/scratch/gnupg/keys/pubring.kbx' created<br>gpg: /disk2/vinay/projects/scratch/gnupg/keys/trustdb.gpg: trustdb created<br>gpg: directory '/disk2/vinay/projects/scratch/gnupg/keys/openpgp-revocs.d' created<br>[GNUPG:] KEY_CONSIDERED 1ADA97672FD8E615012C75C295CEF1267475C187 0<br>gpg: revocation certificate stored as '/disk2/vinay/projects/scratch/gnupg/keys/openpgp-revocs.d/1ADA97672FD8E615012C75C295CEF1267475C187.rev'<br>[GNUPG:] KEY_CREATED B 1ADA97672FD8E615012C75C295CEF1267475C187<br>Result: Success<br>Creating random data to sign ...<br>Signing data, asking for a detached signature ...<br>gpg: using "1ADA97672FD8E615012C75C295CEF1267475C187" as default secret key for signing<br>[GNUPG:] KEY_CONSIDERED 1ADA97672FD8E615012C75C295CEF1267475C187 2<br>[GNUPG:] BEGIN_SIGNING H2<br>[GNUPG:] SIG_CREATED D 17 2 00 1651965765 1ADA97672FD8E615012C75C295CEF1267475C187<br>-----BEGIN PGP SIGNATURE-----<br><br>iF0EABECAB0WIQQa2pdnL9jmFQEsdcKVzvEmdHXBhwUCYnb/RQAKCRCVzvEmdHXB<br>h3FGAJ9zUzSbkYbven89dQZekXn4FaogcwCfXJEoGE0Gar40OKJlNfAJrj4AYE8=<br>=Gye9<br>-----END PGP SIGNATURE-----<br>Result: Success<br>Trying to verify data ...<br>[GNUPG:] NEWSIG<br>gpg: Signature made Sun 08 May 2022 00:22:45 BST<br>gpg:                using DSA key 1ADA97672FD8E615012C75C295CEF1267475C187<br>[GNUPG:] KEY_CONSIDERED 1ADA97672FD8E615012C75C295CEF1267475C187 0<br>[GNUPG:] KEY_CONSIDERED 1ADA97672FD8E615012C75C295CEF1267475C187 0<br>gpg: checking the trustdb<br>[GNUPG:] KEY_CONSIDERED 1ADA97672FD8E615012C75C295CEF1267475C187 0<br>gpg: marginals needed: 3  completes needed: 1  trust model: pgp<br>gpg: depth: 0  valid:   1  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 1u<br>[GNUPG:] BADSIG 95CEF1267475C187 Andrew Able (A test user) <andrew.able@example.com><br>gpg: BAD signature from "Andrew Able (A test user) <andrew.able@example.com>" [ultimate]<br>[GNUPG:] FAILURE gpg-exit 33554433<br>Result: Failure (exit code = 1)<br><br></div><div dir="ltr" data-setdir="false">What have I missed in terms of arguments passed to GnuPG, or anything else? All help gratefully received.</div><div dir="ltr" data-setdir="false"><br></div></div></div><div dir="ltr" data-setdir="false">The script is also available (in case the above gets manged by email software) at <a href="https://gist.github.com/vsajip/3f6b092d8d72e3b68b3ce21ec3e013b7" rel="nofollow" target="_blank" class="">https://gist.github.com/vsajip/3f6b092d8d72e3b68b3ce21ec3e013b7</a> <br></div><div><br></div><div dir="ltr" data-setdir="false">Regards,</div><div dir="ltr" data-setdir="false"><br></div><div dir="ltr" data-setdir="false">Vinay Sajip<br></div><div><br></div></div></body></html>