verify-tag: share code with verify-commit
[gitweb.git] / builtin / verify-tag.c
index 9cdf332333b95b3ab2ea6e133f345105bd67d019..e1eb341baeaa4833fdff08b11901264f4bd207ea 100644 (file)
 #include "gpg-interface.h"
 
 static const char * const verify_tag_usage[] = {
-               N_("git verify-tag [-v|--verbose] <tag>..."),
+               N_("git verify-tag [-v | --verbose] <tag>..."),
                NULL
 };
 
 static int run_gpg_verify(const char *buf, unsigned long size, int verbose)
 {
+       struct signature_check sigc;
        int len;
 
+       memset(&sigc, 0, sizeof(sigc));
+
        len = parse_signature(buf, size);
        if (verbose)
                write_in_full(1, buf, len);
@@ -29,7 +32,11 @@ static int run_gpg_verify(const char *buf, unsigned long size, int verbose)
        if (size == len)
                return error("no signature found");
 
-       return verify_signed_buffer(buf, len, buf + len, size - len, NULL, NULL);
+       check_signature(buf, len, buf + len, size - len, &sigc);
+       fputs(sigc.gpg_output, stderr);
+
+       signature_check_clear(&sigc);
+       return sigc.result != 'G' && sigc.result != 'U';
 }
 
 static int verify_tag(const char *name, int verbose)