* options.h, g10.c (main), keylist.c (list_keyblock_print): Add
authorDavid Shaw <dshaw@jabberwocky.com>
Wed, 11 Feb 2004 13:46:23 +0000 (13:46 +0000)
committerDavid Shaw <dshaw@jabberwocky.com>
Wed, 11 Feb 2004 13:46:23 +0000 (13:46 +0000)
"show-unusable-subkeys" list-option to show revoked and/or expired
subkeys.

g10/ChangeLog
g10/g10.c
g10/keylist.c
g10/options.h

index 93b6267..b7e3933 100644 (file)
@@ -1,3 +1,9 @@
+2004-02-11  David Shaw  <dshaw@jabberwocky.com>
+
+       * options.h, g10.c (main), keylist.c (list_keyblock_print): Add
+       "show-unusable-subkeys" list-option to show revoked and/or expired
+       subkeys.
+
 2004-02-10  David Shaw  <dshaw@jabberwocky.com>
 
        * keyedit.c (keyedit_menu): Prompt for subkey removal for both
index 25be39a..6393c52 100644 (file)
--- a/g10/g10.c
+++ b/g10/g10.c
@@ -1705,6 +1705,7 @@ main( int argc, char **argv )
            g10_opt_verbose++;
            opt.verbose++;
            opt.list_options|=LIST_SHOW_UNUSABLE_UIDS;
+           opt.list_options|=LIST_SHOW_UNUSABLE_SUBKEYS;
            break;
          case oKOption: set_cmd( &cmd, aKMode ); break;
 
@@ -2102,6 +2103,7 @@ main( int argc, char **argv )
                  {"show-validity",LIST_SHOW_VALIDITY},
                  {"show-long-keyids",LIST_SHOW_LONG_KEYIDS},
                  {"show-unusable-uids",LIST_SHOW_UNUSABLE_UIDS},
+                 {"show-unusable-subkeys",LIST_SHOW_UNUSABLE_SUBKEYS},
                  {"show-keyring",LIST_SHOW_KEYRING},
                  {"show-sig-expire",LIST_SHOW_SIG_EXPIRE},
                  {NULL,0}
index c949e8a..f3fdb15 100644 (file)
@@ -605,7 +605,9 @@ list_keyblock_print ( KBNODE keyblock, int secret, int fpr, void *opaque )
     struct sig_stats *stats=opaque;
     int skip_sigs=0;
     int newformat=((opt.list_options&LIST_SHOW_VALIDITY) && !secret)
-      || (opt.list_options & (LIST_SHOW_LONG_KEYIDS|LIST_SHOW_UNUSABLE_UIDS));
+      || (opt.list_options & (LIST_SHOW_LONG_KEYIDS
+                             | LIST_SHOW_UNUSABLE_UIDS
+                             | LIST_SHOW_UNUSABLE_SUBKEYS));
 
     /* get the keyid from the keyblock */
     node = find_kbnode( keyblock, secret? PKT_SECRET_KEY : PKT_PUBLIC_KEY );
@@ -742,6 +744,15 @@ list_keyblock_print ( KBNODE keyblock, int secret, int fpr, void *opaque )
            u32 keyid2[2];
            PKT_public_key *pk2 = node->pkt->pkt.public_key;
 
+           if((pk2->is_revoked || pk2->has_expired)
+              && !(opt.list_options&LIST_SHOW_UNUSABLE_SUBKEYS))
+             {
+               skip_sigs=1;
+               continue;
+             }
+           else
+             skip_sigs=0;
+
            if( !any ) {
                putchar('\n');
                if( fpr )
@@ -817,7 +828,6 @@ list_keyblock_print ( KBNODE keyblock, int secret, int fpr, void *opaque )
                /* TODO: Make sure a cached sig record here still has
                    the pk that issued it.  See also
                    keyedit.c:print_and_check_one_sig */
-
            }
            else {
                rc = 0;
index 4698aea..aa7c244 100644 (file)
@@ -245,8 +245,9 @@ struct {
 #define LIST_SHOW_VALIDITY               (1<<4)
 #define LIST_SHOW_LONG_KEYIDS            (1<<5)
 #define LIST_SHOW_UNUSABLE_UIDS          (1<<6)
-#define LIST_SHOW_KEYRING                (1<<7)
-#define LIST_SHOW_SIG_EXPIRE             (1<<8)
+#define LIST_SHOW_UNUSABLE_SUBKEYS       (1<<7)
+#define LIST_SHOW_KEYRING                (1<<8)
+#define LIST_SHOW_SIG_EXPIRE             (1<<9)
 
 #define VERIFY_SHOW_PHOTOS               (1<<0)
 #define VERIFY_SHOW_POLICY_URLS          (1<<1)