[git] GnuPG - branch, fix-T4018, created. gnupg-2.2.8-5-gee1fc42

by Daniel Kahn Gillmor cvs at cvs.gnupg.org
Tue Jun 12 08:48:35 CEST 2018


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The GNU Privacy Guard".

The branch, fix-T4018 has been created
        at  ee1fc420fb9741b2cfaea6fa820a00be2923f514 (commit)

- Log -----------------------------------------------------------------
commit ee1fc420fb9741b2cfaea6fa820a00be2923f514
Author: Daniel Kahn Gillmor <dkg at fifthhorseman.net>
Date:   Tue Jun 12 02:41:30 2018 -0400

    gpg: Print revocation certificate details when showing with-colons.
    
    * g10/import.c (import_revoke_cert): add options argument, and print
    colon-delimited output for revocation certificate as requested.
    --
    
    I looked into trying to make this work with one of the functions in
    g10/keylist.c, but i saw nothing that will accept a revocation
    certificate on its own, so i'm replicating the functionality directly
    in g10/import.c.  This is a bit unfortunate because the code for
    describing a revocation cert now exists in two separate places, but
    refactoring both list_keyblock_print() and list_keyblock_colon() in
    g10/keylist.c seems like a much heavier lift.
    
    GnuPG-Bug-id: 4018
    Signed-off-by: Daniel Kahn Gillmor <dkg at fifthhorseman.net>

diff --git a/g10/import.c b/g10/import.c
index 6d2beaf..ae32973 100644
--- a/g10/import.c
+++ b/g10/import.c
@@ -114,7 +114,8 @@ static int import_secret_one (ctrl_t ctrl, kbnode_t keyblock,
                               unsigned int options, int for_migration,
                               import_screener_t screener, void *screener_arg);
 static int import_revoke_cert (ctrl_t ctrl,
-                               kbnode_t node, struct import_stats_s *stats);
+                               kbnode_t node, unsigned int options,
+                               struct import_stats_s *stats);
 static int chk_self_sigs (ctrl_t ctrl, kbnode_t keyblock, u32 *keyid,
                           int *non_self);
 static int delete_inv_parts (ctrl_t ctrl, kbnode_t keyblock,
@@ -590,7 +591,7 @@ import (ctrl_t ctrl, IOBUF inp, const char* fname,struct import_stats_s *stats,
                                 screener, screener_arg);
       else if (keyblock->pkt->pkttype == PKT_SIGNATURE
                && IS_KEY_REV (keyblock->pkt->pkt.signature) )
-        rc = import_revoke_cert (ctrl, keyblock, stats);
+        rc = import_revoke_cert (ctrl, keyblock, options, stats);
       else
         {
           log_info (_("skipping block of type %d\n"), keyblock->pkt->pkttype);
@@ -2607,7 +2608,7 @@ import_secret_one (ctrl_t ctrl, kbnode_t keyblock,
  * Import a revocation certificate; this is a single signature packet.
  */
 static int
-import_revoke_cert (ctrl_t ctrl, kbnode_t node, struct import_stats_s *stats)
+import_revoke_cert (ctrl_t ctrl, kbnode_t node, unsigned int options, struct import_stats_s *stats)
 {
   PKT_public_key *pk = NULL;
   kbnode_t onode;
@@ -2623,6 +2624,24 @@ import_revoke_cert (ctrl_t ctrl, kbnode_t node, struct import_stats_s *stats)
   keyid[0] = node->pkt->pkt.signature->keyid[0];
   keyid[1] = node->pkt->pkt.signature->keyid[1];
 
+  if ((options & IMPORT_SHOW) &&
+      (opt.with_colons))
+    {
+      PKT_signature *sig = node->pkt->pkt.signature;
+      char *issuer_fpr = issuer_fpr = issuer_fpr_string (sig);
+
+      es_fprintf (es_stdout, "rev::%d:%08lX%08lX:%s:%s:::::::%s:::%d:\n",
+                  sig->pubkey_algo,
+		  (ulong) sig->keyid[0], (ulong) sig->keyid[1],
+		  colon_datestr_from_sig (sig),
+		  colon_expirestr_from_sig (sig),
+                  issuer_fpr ? issuer_fpr : "",
+                  sig->digest_algo);
+
+      xfree (issuer_fpr);
+      es_fflush (es_stdout);
+    }
+
   pk = xmalloc_clear( sizeof *pk );
   rc = get_pubkey (ctrl, pk, keyid );
   if (gpg_err_code (rc) == GPG_ERR_NO_PUBKEY )

-----------------------------------------------------------------------


hooks/post-receive
-- 
The GNU Privacy Guard
http://git.gnupg.org




More information about the Gnupg-commits mailing list