[Pkg-gnupg-commit] [gnupg2] 128/241: gpg: Print a new EXPORTED status line.

Daniel Kahn Gillmor dkg at fifthhorseman.net
Wed Dec 9 20:32:05 UTC 2015


This is an automated email from the git hooks/post-receive script.

dkg pushed a commit to branch master
in repository gnupg2.

commit 2038adf16d0e7eeb614043aae17b16a867de6b70
Author: Werner Koch <wk at gnupg.org>
Date:   Thu Nov 12 17:02:18 2015 +0100

    gpg: Print a new EXPORTED status line.
    
    * common/status.h (STATUS_EXPORTED): New.
    * g10/export.c (print_status_exported): New.
    (do_export_stream): Call that function.
    
    Signed-off-by: Werner Koch <wk at gnupg.org>
---
 common/status.h |  1 +
 doc/DETAILS     |  5 +++++
 g10/export.c    | 31 ++++++++++++++++++++++++++++---
 3 files changed, 34 insertions(+), 3 deletions(-)

diff --git a/common/status.h b/common/status.h
index 3409167..71bcc95 100644
--- a/common/status.h
+++ b/common/status.h
@@ -62,6 +62,7 @@ enum
     STATUS_IMPORT_RES,
     STATUS_IMPORT_CHECK,
 
+    STATUS_EXPORTED,
     STATUS_EXPORT_RES,
 
     STATUS_FILE_START,
diff --git a/doc/DETAILS b/doc/DETAILS
index aa5a57b..7c3e67c 100644
--- a/doc/DETAILS
+++ b/doc/DETAILS
@@ -768,6 +768,11 @@ pkd:0:1024:B665B1435F4C2 .... FF26ABB:
     - <not_imported>
     - <skipped_v3_keys>
 
+*** EXPORTED  <fingerprint>
+    The key with <fingerprint> has been exported.  The fingerprint is
+    the fingerprint of the primary key even if the primary key has
+    been replaced by a stub key during secret key export.
+
 *** EXPORT_RES <args>
 
     Final statistics on export process (this is one long line). The
diff --git a/g10/export.c b/g10/export.c
index d84ff74..b927251 100644
--- a/g10/export.c
+++ b/g10/export.c
@@ -809,6 +809,22 @@ transfer_format_to_openpgp (gcry_sexp_t s_pgp, PKT_public_key *pk)
   goto leave;
 }
 
+
+/* Print an "EXPORTED" status line.  PK is the primary public key.  */
+static void
+print_status_exported (PKT_public_key *pk)
+{
+  char *hexfpr;
+
+  if (!is_status_enabled ())
+    return;
+
+  hexfpr = hexfingerprint (pk);
+  write_status_text (STATUS_EXPORTED, hexfpr? hexfpr : "[?]");
+  xfree (hexfpr);
+}
+
+
 /* Export the keys identified by the list of strings in USERS to the
    stream OUT.  If Secret is false public keys will be exported.  With
    secret true secret keys will be exported; in this case 1 means the
@@ -1182,7 +1198,10 @@ do_export_stream (ctrl_t ctrl, iobuf_t out, strlist_t users, int secret,
 
                   err = build_packet (out, node->pkt);
                   if (!err && node->pkt->pkttype == PKT_PUBLIC_KEY)
-                    stats->exported++;
+                    {
+                      stats->exported++;
+                      print_status_exported (node->pkt->pkt.public_key);
+                    }
                 }
               else if (!err)
                 {
@@ -1239,7 +1258,10 @@ do_export_stream (ctrl_t ctrl, iobuf_t out, strlist_t users, int secret,
 
                   err = build_packet (out, node->pkt);
                   if (!err && node->pkt->pkttype == PKT_PUBLIC_KEY)
-                    stats->exported++;
+                    {
+                      stats->exported++;
+                      print_status_exported (node->pkt->pkt.public_key);
+                    }
                   goto unwraperror_leave;
 
                 unwraperror:
@@ -1278,7 +1300,10 @@ do_export_stream (ctrl_t ctrl, iobuf_t out, strlist_t users, int secret,
             {
               err = build_packet (out, node->pkt);
               if (!err && node->pkt->pkttype == PKT_PUBLIC_KEY)
-                stats->exported++;
+                {
+                  stats->exported++;
+                  print_status_exported (node->pkt->pkt.public_key);
+                }
             }
 
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gnupg2.git



More information about the Pkg-gnupg-commit mailing list