* getkey.c (merge_selfsigs_subkey): Do not mark subkeys valid if we do not
authorDavid Shaw <dshaw@jabberwocky.com>
Fri, 5 Mar 2004 13:34:56 +0000 (13:34 +0000)
committerDavid Shaw <dshaw@jabberwocky.com>
Fri, 5 Mar 2004 13:34:56 +0000 (13:34 +0000)
support their pk algorithm.  This allows for early (during get_*)
rejection of a subkey, and selection of another.

* passphrase.c (passphrase_to_dek): Give a little more information when we
have room to do so.

g10/ChangeLog
g10/getkey.c
g10/passphrase.c

index 45464c9..034ae75 100644 (file)
@@ -1,3 +1,12 @@
+2004-03-05  David Shaw  <dshaw@jabberwocky.com>
+
+       * getkey.c (merge_selfsigs_subkey): Do not mark subkeys valid if
+       we do not support their pk algorithm.  This allows for early
+       (during get_*) rejection of a subkey, and selection of another.
+
+       * passphrase.c (passphrase_to_dek): Give a little more information
+       when we have room to do so.
+       
 2004-03-04  David Shaw  <dshaw@jabberwocky.com>
 
        * revoke.c (export_minimal_pk), export.c (do_export_stream),
index e479ed6..7e6c30c 100644 (file)
@@ -1895,11 +1895,10 @@ merge_selfsigs_subkey( KBNODE keyblock, KBNODE subnode )
         }
     }
 
-    if ( !signode ) {
-        return;  /* no valid key binding */
-    }
+    /* no valid key binding */
+    if ( !signode )
+      return;
 
-    subpk->is_valid = 1;
     sig = signode->pkt->pkt.signature;
         
     p = parse_sig_subpkt (sig->hashed, SIGSUBPKT_KEY_FLAGS, &n );
@@ -1929,6 +1928,12 @@ merge_selfsigs_subkey( KBNODE keyblock, KBNODE subnode )
         key_expire = 0;
     subpk->has_expired = key_expire >= curtime? 0 : key_expire;
     subpk->expiredate = key_expire;
+
+    /* algo doesn't exist */
+    if(check_pubkey_algo(subpk->pubkey_algo))
+      return;
+
+    subpk->is_valid = 1;
 }
 
 
index 870ad97..1274afc 100644 (file)
@@ -1134,7 +1134,7 @@ passphrase_to_dek( u32 *keyid, int pubkey_algo,
                if(keystrlen()>10)
                  {
                    tty_printf("\n");
-                   tty_printf(_("        (main key ID %s)"),
+                   tty_printf(_("         (subkey on main key ID %s)"),
                               keystr(&keyid[2]) );
                  }
                else