diff options
Diffstat (limited to '')
-rw-r--r-- | g10/ChangeLog | 7 | ||||
-rw-r--r-- | g10/keyedit.c | 20 | ||||
-rw-r--r-- | g10/trustdb.c | 2 |
3 files changed, 19 insertions, 10 deletions
diff --git a/g10/ChangeLog b/g10/ChangeLog index 617598cb5..459e78e8b 100644 --- a/g10/ChangeLog +++ b/g10/ChangeLog @@ -1,5 +1,8 @@ 2005-11-10 David Shaw <[email protected]> + * keyedit.c (keyedit_menu, menu_clean_sigs_from_uids): Add + "minimize" command. + * packet.h, keyedit.c (menu_clean_uids_from_key), trustdb.c (clean_uids_from_key): Fix display bug where sigs cleaned for other reasons caused a uid to appear as if it had been compacted. @@ -13,8 +16,8 @@ * trustdb.h, trustdb.c (clean_sigs_from_uid): Add flag to remove all non-selfsigs from key during cleaning. Change all callers. - * export.c (do_export_stream): Use it here so we don't need - additional minimize code in the export path. + * export.c (do_export_stream): Use it here for export-minimal so + we don't need additional minimize code in the export path. 2005-11-06 David Shaw <[email protected]> diff --git a/g10/keyedit.c b/g10/keyedit.c index f28f924bd..b33105210 100644 --- a/g10/keyedit.c +++ b/g10/keyedit.c @@ -57,7 +57,7 @@ static int menu_adduid( KBNODE keyblock, KBNODE sec_keyblock, int photo, const char *photo_name ); static void menu_deluid( KBNODE pub_keyblock, KBNODE sec_keyblock ); static int menu_delsig( KBNODE pub_keyblock ); -static int menu_clean_sigs_from_uids(KBNODE keyblock); +static int menu_clean_sigs_from_uids(KBNODE keyblock,int self_only); static int menu_clean_uids_from_key(KBNODE keyblock); static void menu_delkey( KBNODE pub_keyblock, KBNODE sec_keyblock ); static int menu_addrevoker( KBNODE pub_keyblock, @@ -1341,7 +1341,7 @@ enum cmdids cmdADDREVOKER, cmdTOGGLE, cmdSELKEY, cmdPASSWD, cmdTRUST, cmdPREF, cmdEXPIRE, cmdBACKSIGN, cmdENABLEKEY, cmdDISABLEKEY, cmdSHOWPREF, cmdSETPREF, cmdPREFKS, cmdINVCMD, cmdSHOWPHOTO, cmdUPDTRUST, cmdCHKTRUST, - cmdADDCARDKEY, cmdKEYTOCARD, cmdBKUPTOCARD, cmdCLEAN, cmdNOP + cmdADDCARDKEY, cmdKEYTOCARD, cmdBKUPTOCARD, cmdCLEAN, cmdMINIMIZE, cmdNOP }; static struct @@ -1443,6 +1443,8 @@ static struct { "showphoto",cmdSHOWPHOTO , 0, N_("show selected photo IDs") }, { "clean", cmdCLEAN , KEYEDIT_NOT_SK, N_("clean unusable parts from key") }, + { "minimize", cmdMINIMIZE , KEYEDIT_NOT_SK, + N_("clean unusable parts from key and remove all signatures") }, { NULL, cmdNONE, 0, NULL } }; @@ -2180,7 +2182,7 @@ keyedit_menu( const char *username, STRLIST locusr, || ascii_strcasecmp(arg_string,"signatures")==0 || ascii_strcasecmp(arg_string,"certs")==0 || ascii_strcasecmp(arg_string,"certificates")==0) - modified=menu_clean_sigs_from_uids(keyblock); + modified=menu_clean_sigs_from_uids(keyblock,0); else if(ascii_strcasecmp(arg_string,"uids")==0) redisplay=modified=menu_clean_uids_from_key(keyblock); else @@ -2188,13 +2190,19 @@ keyedit_menu( const char *username, STRLIST locusr, } else { - modified=menu_clean_sigs_from_uids(keyblock); + modified=menu_clean_sigs_from_uids(keyblock,0); modified+=menu_clean_uids_from_key(keyblock); redisplay=modified; } } break; + case cmdMINIMIZE: + modified=menu_clean_sigs_from_uids(keyblock,1); + modified+=menu_clean_uids_from_key(keyblock); + redisplay=modified; + break; + case cmdQUIT: if( have_commands ) goto leave; @@ -3184,7 +3192,7 @@ menu_delsig( KBNODE pub_keyblock ) } static int -menu_clean_sigs_from_uids(KBNODE keyblock) +menu_clean_sigs_from_uids(KBNODE keyblock,int self_only) { KBNODE uidnode; int modified=0; @@ -3199,7 +3207,7 @@ menu_clean_sigs_from_uids(KBNODE keyblock) char *user=utf8_to_native(uidnode->pkt->pkt.user_id->name, uidnode->pkt->pkt.user_id->len, 0); - deleted=clean_sigs_from_uid(keyblock,uidnode,opt.verbose,0); + deleted=clean_sigs_from_uid(keyblock,uidnode,opt.verbose,self_only); if(deleted) { tty_printf(deleted==1? diff --git a/g10/trustdb.c b/g10/trustdb.c index dbcab271a..d1a011625 100644 --- a/g10/trustdb.c +++ b/g10/trustdb.c @@ -1659,8 +1659,6 @@ clean_sigs_from_uid(KBNODE keyblock,KBNODE uidnode,int noisy,int self_only) We don't actually remove the user ID packet itself since it might be ressurected in a later merge. - If this self-sig is a revocation, we also include the most recent - valid regular sig since it is hard to import the user ID otherwise. TODO: change the import code to allow importing a uid with only a revocation if the uid already exists on the keyring. */ int |