diff options
Diffstat (limited to 'g10/keyedit.c')
-rw-r--r-- | g10/keyedit.c | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/g10/keyedit.c b/g10/keyedit.c index 91a4d6bdf..df14f13e1 100644 --- a/g10/keyedit.c +++ b/g10/keyedit.c @@ -59,6 +59,7 @@ static int count_selected_uids( KBNODE keyblock ); static int count_selected_keys( KBNODE keyblock ); static int menu_revsig( KBNODE keyblock ); static int menu_revkey( KBNODE pub_keyblock, KBNODE sec_keyblock ); +static int enable_disable_key( KBNODE keyblock, int disable ); #define CONTROL_D ('D' - 'A' + 1) @@ -550,6 +551,7 @@ keyedit_menu( const char *username, STRLIST locusr, STRLIST commands ) cmdLSIGN, cmdREVSIG, cmdREVKEY, cmdDELSIG, cmdDEBUG, cmdSAVE, cmdADDUID, cmdDELUID, cmdADDKEY, cmdDELKEY, cmdTOGGLE, cmdSELKEY, cmdPASSWD, cmdTRUST, cmdPREF, cmdEXPIRE, + cmdENABLEKEY, cmdDISABLEKEY, cmdNOP }; static struct { const char *name; enum cmdids id; @@ -586,6 +588,8 @@ keyedit_menu( const char *username, STRLIST locusr, STRLIST commands ) { N_("trust") , cmdTRUST , 0, N_("change the ownertrust") }, { N_("revsig") , cmdREVSIG , 0, N_("revoke signatures") }, { N_("revkey") , cmdREVKEY , 1, N_("revoke a secondary key") }, + { N_("disable") , cmdDISABLEKEY , 0, N_("disable a key") }, + { N_("enable") , cmdENABLEKEY , 0, N_("enable a key") }, { NULL, cmdNONE } }; enum cmdids cmd; @@ -662,7 +666,7 @@ keyedit_menu( const char *username, STRLIST locusr, STRLIST commands ) have_commands = 0; } if( !have_commands ) { - answer = cpr_get("keyedit.cmd", _("Command> ")); + answer = cpr_get("", _("Command> ")); cpr_kill_prompt(); } trim_spaces(answer); @@ -842,12 +846,10 @@ keyedit_menu( const char *username, STRLIST locusr, STRLIST commands ) break; case cmdADDKEY: - secmem_dump_stats(); if( generate_subkeypair( keyblock, sec_keyblock ) ) { redisplay = 1; sec_modified = modified = 1; } - secmem_dump_stats(); break; @@ -934,6 +936,14 @@ keyedit_menu( const char *username, STRLIST locusr, STRLIST commands ) } break; + case cmdENABLEKEY: + case cmdDISABLEKEY: + if( enable_disable_key( keyblock, cmd == cmdDISABLEKEY ) ) { + redisplay = 1; + modified = 1; + } + break; + default: tty_printf("\n"); tty_printf(_("Invalid command (try \"help\")\n")); @@ -1859,3 +1869,15 @@ menu_revkey( KBNODE pub_keyblock, KBNODE sec_keyblock ) } +static int +enable_disable_key( KBNODE keyblock, int disable ) +{ + int entire; + int changed = 0; + + + entire = !count_selected_keys( keyblock ); + + return changed; +} + |