On 28/09/16 15:24, Michael J Gruber wrote:
> According to gpg2's doc/DETAILS:
> "For each signature only one of the codes GOODSIG, BADSIG, EXPSIG,
> EXPKEYSIG, REVKEYSIG or ERRSIG will be emitted."
> gpg1 ("classic") behaves the same (although doc/DETAILS
> Currently, we parse gpg's status output for GOODSIG, BADSIG and trust
> information and translate that into status codes G, B, U, N for the %G?
> format specifier.
> git-verify-* returns success in the GOODSIG case only. This is somewhat in
> disagreement with gpg, which considers the first 5 of the 6 above as VALIDSIG,
> but we err on the very safe side.
> Introduce additional status codes E, X, R for ERRSIG, EXP*SIG, REVKEYSIG
> so that a user of %G? gets more information about the absence of a 'G'
> on first glance.
> Requested-by: Alex <agram...@gmail.com>
> Signed-off-by: Michael J Gruber <g...@drmicha.warpmail.net>
> Changes in v2:
> - Use GNUPGHOME="$HOME/gnupg-home-not-used" just like in other tests (lib).
> - Do not parse for signer UID in the ERRSIG case (and test that we do not).
> - Retreat "rather" addition from the doc: good/valid are terms that we use
> differently from gpg anyways.
> Documentation/pretty-formats.txt | 9 +++++++--
> gpg-interface.c | 13 ++++++++++---
> pretty.c | 3 +++
> t/t7510-signed-commit.sh | 12 +++++++++++-
> 4 files changed, 31 insertions(+), 6 deletions(-)
> diff --git a/Documentation/pretty-formats.txt
> index a942d57..c28ff2b 100644
> --- a/Documentation/pretty-formats.txt
> +++ b/Documentation/pretty-formats.txt
> @@ -143,8 +143,13 @@ ifndef::git-rev-list
> - '%N': commit notes
> - '%GG': raw verification message from GPG for a signed commit
> -- '%G?': show "G" for a good (valid) signature, "B" for a bad signature,
> - "U" for a good signature with unknown validity and "N" for no signature
> +- '%G?': show "G" for a good (valid) signature,
> + "B" for a bad signature,
> + "U" for a good signature with unknown validity,
> + "X" for a good expired signature, or good signature made by an expired key,
Hmm, this looks odd. Would the following:
"X" for a good signature made with an expired key,
mean something different?