* keydb.h: Err on the side of making an unknown signature a SIG rather
authorDavid Shaw <dshaw@jabberwocky.com>
Mon, 24 Mar 2003 20:05:53 +0000 (20:05 +0000)
committerDavid Shaw <dshaw@jabberwocky.com>
Mon, 24 Mar 2003 20:05:53 +0000 (20:05 +0000)
than a CERT.

* import.c (delete_inv_parts): Discard any key signatures that aren't key
types (i.e. 0x00, 0x01, etc.)

* g10.c (main): Add deprecated option warning for --list-ownertrust.  Add
--compression-algo alias for --compress-algo.  Change --version output
strings to match "showpref" strings, and make translatable.

* status.c (do_get_from_fd): Accept 'y' as well as 'Y' for --command-fd
boolean input.

* trustdb.c: Fix typo (DISABLE_REGEXP -> DISABLE_REGEX)

* keyedit.c (show_key_with_all_names_colon): Show no-ks-modify flag.

g10/ChangeLog
g10/g10.c
g10/import.c
g10/keydb.h
g10/keyedit.c
g10/status.c
g10/trustdb.c

index cf15e42..17594b3 100644 (file)
@@ -1,3 +1,24 @@
+2003-03-24  David Shaw  <dshaw@jabberwocky.com>
+
+       * keydb.h: Err on the side of making an unknown signature a SIG
+       rather than a CERT.
+
+       * import.c (delete_inv_parts): Discard any key signatures that
+       aren't key types (i.e. 0x00, 0x01, etc.)
+
+       * g10.c (main): Add deprecated option warning for
+       --list-ownertrust.  Add --compression-algo alias for
+       --compress-algo.  Change --version output strings to match
+       "showpref" strings, and make translatable.
+
+       * status.c (do_get_from_fd): Accept 'y' as well as 'Y' for
+       --command-fd boolean input.
+
+       * trustdb.c: Fix typo (DISABLE_REGEXP -> DISABLE_REGEX)
+
+       * keyedit.c (show_key_with_all_names_colon): Show no-ks-modify
+       flag.
+
 2003-03-11  David Shaw  <dshaw@jabberwocky.com>
 
        * options.h, g10.c (main), keyserver.c (kopts): Add "try-dns-srv"
 2003-03-11  David Shaw  <dshaw@jabberwocky.com>
 
        * options.h, g10.c (main), keyserver.c (kopts): Add "try-dns-srv"
index 0226243..550d984 100644 (file)
--- a/g10/g10.c
+++ b/g10/g10.c
@@ -120,6 +120,7 @@ enum cmd_and_opt_values { aNull = 0,
     aListTrustDB,
     aListTrustPath,
     aExportOwnerTrust,
     aListTrustDB,
     aListTrustPath,
     aExportOwnerTrust,
+    aListOwnerTrust,
     aImportOwnerTrust,
     aDeArmor,
     aEnArmor,
     aImportOwnerTrust,
     aDeArmor,
     aEnArmor,
@@ -363,7 +364,7 @@ static ARGPARSE_OPTS opts[] = {
     { aExportOwnerTrust,
              "export-ownertrust", 256, N_("export the ownertrust values")},
     { aImportOwnerTrust,
     { aExportOwnerTrust,
              "export-ownertrust", 256, N_("export the ownertrust values")},
     { aImportOwnerTrust,
-             "import-ownertrust", 256 , N_("import ownertrust values")},
+             "import-ownertrust", 256, N_("import ownertrust values")},
     { aUpdateTrustDB,
              "update-trustdb",0 , N_("update the trust database")},
     { aCheckTrustDB,
     { aUpdateTrustDB,
              "update-trustdb",0 , N_("update the trust database")},
     { aCheckTrustDB,
@@ -495,7 +496,8 @@ static ARGPARSE_OPTS opts[] = {
     " --fingerprint [names]      show fingerprints\n"  ) },
 
   /* hidden options */
     " --fingerprint [names]      show fingerprints\n"  ) },
 
   /* hidden options */
-    { aExportOwnerTrust, "list-ownertrust",0 , "@"},  /* alias */
+    { aListOwnerTrust, "list-ownertrust", 256, "@"}, /* deprecated */
+    { oCompressAlgo, "compression-algo", 1, "@"}, /* alias */
     { aPrintMDs, "print-mds" , 256, "@"}, /* old */
     { aListTrustDB, "list-trustdb",0 , "@"},
     /* Not yet used */
     { aPrintMDs, "print-mds" , 256, "@"}, /* old */
     { aListTrustDB, "list-trustdb",0 , "@"},
     /* Not yet used */
@@ -666,25 +668,25 @@ strusage( int level )
       case 33: p = _("\nSupported algorithms:\n"); break;
       case 34:
        if( !pubkeys )
       case 33: p = _("\nSupported algorithms:\n"); break;
       case 34:
        if( !pubkeys )
-           pubkeys = build_list("Pubkey: ", 0, pubkey_algo_to_string,
+           pubkeys = build_list(_("Pubkey: "), 0, pubkey_algo_to_string,
                                                        check_pubkey_algo );
        p = pubkeys;
        break;
       case 35:
        if( !ciphers )
                                                        check_pubkey_algo );
        p = pubkeys;
        break;
       case 35:
        if( !ciphers )
-           ciphers = build_list("Cipher: ", 'S', cipher_algo_to_string,
+           ciphers = build_list(_("Cipher: "), 'S', cipher_algo_to_string,
                                                        check_cipher_algo );
        p = ciphers;
        break;
       case 36:
        if( !digests )
                                                        check_cipher_algo );
        p = ciphers;
        break;
       case 36:
        if( !digests )
-           digests = build_list("Hash: ", 'H', digest_algo_to_string,
+           digests = build_list(_("Hash: "), 'H', digest_algo_to_string,
                                                        check_digest_algo );
        p = digests;
        break;
       case 37:
        if( !zips )
                                                        check_digest_algo );
        p = digests;
        break;
       case 37:
        if( !zips )
-           zips = build_list("Compress: ",'Z',compress_algo_to_string,
+           zips = build_list(_("Compression: "),'Z',compress_algo_to_string,
                                                        check_compress_algo);
        p = zips;
        break;
                                                        check_compress_algo);
        p = zips;
        break;
@@ -1362,6 +1364,9 @@ main( int argc, char **argv )
          case aListTrustPath: set_cmd( &cmd, aListTrustPath); break;
          case aDeArmor: set_cmd( &cmd, aDeArmor); break;
          case aEnArmor: set_cmd( &cmd, aEnArmor); break;
          case aListTrustPath: set_cmd( &cmd, aListTrustPath); break;
          case aDeArmor: set_cmd( &cmd, aDeArmor); break;
          case aEnArmor: set_cmd( &cmd, aEnArmor); break;
+         case aListOwnerTrust:
+           deprecated_warning(configname,configlineno,
+                              "--list-ownertrust","--export-ownertrust","");
          case aExportOwnerTrust: set_cmd( &cmd, aExportOwnerTrust); break;
          case aImportOwnerTrust: set_cmd( &cmd, aImportOwnerTrust); break;
           case aPipeMode: set_cmd( &cmd, aPipeMode); break;
          case aExportOwnerTrust: set_cmd( &cmd, aExportOwnerTrust); break;
          case aImportOwnerTrust: set_cmd( &cmd, aImportOwnerTrust); break;
           case aPipeMode: set_cmd( &cmd, aPipeMode); break;
index 83ae0b8..b49b202 100644 (file)
@@ -1378,6 +1378,14 @@ delete_inv_parts( const char *fname, KBNODE keyblock,
                       (ulong)keyid[1]);
            delete_kbnode( node );
        }
                       (ulong)keyid[1]);
            delete_kbnode( node );
        }
+       else if( node->pkt->pkttype == PKT_SIGNATURE
+                && !IS_CERT(node->pkt->pkt.signature))
+         {
+           log_error(_("key %08lX: unexpected signature class (0x%02X) -"
+                       " skipped\n"),(ulong)keyid[1],
+                     node->pkt->pkt.signature->sig_class);
+           delete_kbnode(node);
+         }
        else if( (node->flag & 4) ) /* marked for deletion */
            delete_kbnode( node );
     }
        else if( (node->flag & 4) ) /* marked for deletion */
            delete_kbnode( node );
     }
index b01a4f0..b506af6 100644 (file)
 #include "cipher.h"
 
 /* What qualifies as a certification (rather than a signature?) */
 #include "cipher.h"
 
 /* What qualifies as a certification (rather than a signature?) */
-#define IS_SIG(s) (((s)->sig_class==0x00) || ((s)->sig_class==0x01) || \
-                  ((s)->sig_class==0x02) || ((s)->sig_class==0x40))
-#define IS_CERT(s) (!IS_SIG(s))
-
+#define IS_CERT(s)       (IS_KEY_SIG(s) || IS_UID_SIG(s) || IS_SUBKEY_SIG(s) \
+                         || IS_KEY_REV(s) || IS_UID_REV(s) || IS_SUBKEY_REV(s))
+#define IS_SIG(s)        (!IS_CERT(s))
 #define IS_KEY_SIG(s)    ((s)->sig_class == 0x1f)
 #define IS_UID_SIG(s)    (((s)->sig_class & ~3) == 0x10)
 #define IS_SUBKEY_SIG(s) ((s)->sig_class == 0x18)
 #define IS_KEY_SIG(s)    ((s)->sig_class == 0x1f)
 #define IS_UID_SIG(s)    (((s)->sig_class & ~3) == 0x10)
 #define IS_SUBKEY_SIG(s) ((s)->sig_class == 0x18)
@@ -38,7 +37,6 @@
 #define IS_UID_REV(s)    ((s)->sig_class == 0x30)
 #define IS_SUBKEY_REV(s) ((s)->sig_class == 0x28)
 
 #define IS_UID_REV(s)    ((s)->sig_class == 0x30)
 #define IS_SUBKEY_REV(s) ((s)->sig_class == 0x28)
 
-
 struct getkey_ctx_s;
 typedef struct getkey_ctx_s *GETKEY_CTX;
 
 struct getkey_ctx_s;
 typedef struct getkey_ctx_s *GETKEY_CTX;
 
index 6710314..9186bd9 100644 (file)
@@ -1871,6 +1871,8 @@ show_key_with_all_names_colon (KBNODE keyblock)
                   } 
                 if (uid->mdc_feature)
                   printf (",mdc");
                   } 
                 if (uid->mdc_feature)
                   printf (",mdc");
+                if (!uid->ks_modify)
+                  printf (",no-ks-modify");
               } 
             putchar (':');
             /* flags */
               } 
             putchar (':');
             /* flags */
index b665968..99f9cfd 100644 (file)
@@ -529,7 +529,7 @@ do_get_from_fd( const char *keyword, int hidden, int bool )
     write_status( STATUS_GOT_IT );
 
     if( bool )  /* Fixme: is this correct??? */
     write_status( STATUS_GOT_IT );
 
     if( bool )  /* Fixme: is this correct??? */
-       return string[0] == 'Y' ? "" : NULL;
+       return (string[0] == 'Y' || string[0] == 'y') ? "" : NULL;
 
     return string;
 }
 
     return string;
 }
index 3dc2ded..e8160f7 100644 (file)
@@ -1463,8 +1463,8 @@ mark_usable_uid_certs (KBNODE keyblock, KBNODE uidnode,
 static int
 check_regexp(const char *exp,const char *string)
 {
 static int
 check_regexp(const char *exp,const char *string)
 {
-#ifdef DISABLE_REGEXP
-  /* When DISABLE_REGEXP is defined, assume all regexps do not
+#ifdef DISABLE_REGEX
+  /* When DISABLE_REGEX is defined, assume all regexps do not
      match. */
   return 0;
 #elif defined(__riscos__)
      match. */
   return 0;
 #elif defined(__riscos__)