[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