I looked at the code in gpg/gpgv at mainproc.c:check_sig_and_print() and GOODSIG is only set if its neither bad/expired/revoked:
...
if(rc)
statno=STATUS_BADSIG;
else if(sig->flags.expired)
statno=STATUS_EXPSIG;
else if(is_expkey)
statno=STATUS_EXPKEYSIG;
else if(is_revkey)
statno=STATUS_REVKEYSIG;
else
statno=STATUS_GOODSIG;
...
Validsig OTOH is returned ignoring the above statuses.
I looked at the code in gpg/gpgv at mainproc. c:check_ sig_and_ print() and GOODSIG is only set if its neither bad/expired/ revoked: STATUS_ BADSIG; >flags. expired) STATUS_ EXPSIG; STATUS_ EXPKEYSIG; STATUS_ REVKEYSIG; STATUS_ GOODSIG;
...
if(rc)
statno=
else if(sig-
statno=
else if(is_expkey)
statno=
else if(is_revkey)
statno=
else
statno=
...
Validsig OTOH is returned ignoring the above statuses.