Are there cases where gpg --verify will exit 0, even if verification failed?

Daniel Kahn Gillmor dkg at
Wed Jan 14 14:40:23 CET 2015

On Wed 2015-01-14 08:22:45 -0500, Sandeep Murthy wrote:
> Exit codes in shells indicate problems relating to completion or disruption
> of the child process invoked by a parent process.
> They will not record unsuccessful events inside the child process
> related to program functions, i.e. if you inside gpg editing a key
> and enter an incorrect subcommand or use it incorrectly then this will
> not affect the exit code, I don’t think.

This is not the case.  all processes have a return code, whether they
are invoked by a shell or by other processes.  The return code is a
critical part of the output of a program.

gpg does use the return code to indicate failure of signature

consider the results of:

    echo test1 > test1.txt
    echo test2 > test2.txt
    gpg --detach-sign --armor test1.txt
    gpg --verify test1.txt.asc test1.txt
    gpg --verify test1.txt.asc test2.txt

the return value of the first --verify should be 0, but the second
--verify invocation should return 1, indicating that the signature
cannot be verified over the (different) contents of test2.txt


More information about the Gnupg-users mailing list