aboutsummaryrefslogtreecommitdiffstats
path: root/g10/g10.c
diff options
context:
space:
mode:
Diffstat (limited to 'g10/g10.c')
-rw-r--r--g10/g10.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/g10/g10.c b/g10/g10.c
index a45f4f584..bebaaf5d1 100644
--- a/g10/g10.c
+++ b/g10/g10.c
@@ -76,6 +76,7 @@ enum cmd_and_opt_values { aNull = 0,
aEditKey,
aDeleteKey,
aDeleteSecretKey,
+ aDeleteSecretAndPublicKey,
aKMode,
aKModeC,
aImport,
@@ -395,6 +396,7 @@ static ARGPARSE_OPTS opts[] = {
{ oTryAllSecrets, "try-all-secrets", 0, "@" },
{ oEnableSpecialFilenames, "enable-special-filenames", 0, "@" },
{ oNoExpensiveTrustChecks, "no-expensive-trust-checks", 0, "@" },
+ { aDeleteSecretAndPublicKey, "delete-secret-and-public-key",256, "@" },
{ oEmu3DESS2KBug, "emulate-3des-s2k-bug", 0, "@"},
{ oEmuMDEncodeBug, "emulate-md-encode-bug", 0, "@"},
{0} };
@@ -754,6 +756,10 @@ main( int argc, char **argv )
case aExportSecretSub: set_cmd( &cmd, aExportSecretSub); break;
case aDeleteSecretKey: set_cmd( &cmd, aDeleteSecretKey);
greeting=1; break;
+ case aDeleteSecretAndPublicKey:
+ set_cmd( &cmd, aDeleteSecretAndPublicKey);
+ greeting=1;
+ break;
case aDeleteKey: set_cmd( &cmd, aDeleteKey); greeting=1; break;
case aDetachedSign: detached_sig = 1; set_cmd( &cmd, aSign ); break;
@@ -1280,10 +1286,18 @@ main( int argc, char **argv )
if( argc != 1 )
wrong_args(_("--delete-key user-id"));
username = make_username( fname );
- if( (rc = delete_key(username, cmd==aDeleteSecretKey)) )
+ if( (rc = delete_key(username, cmd==aDeleteSecretKey, 0)) )
log_error("%s: delete key failed: %s\n", username, g10_errstr(rc) );
m_free(username);
break;
+ case aDeleteSecretAndPublicKey:
+ if( argc != 1 )
+ wrong_args(_("--delete-secret-and-public-key user-id"));
+ username = make_username( fname );
+ if( (rc = delete_key(username, 0, 1)) )
+ log_error("%s: delete key failed: %s\n", username, g10_errstr(rc));
+ m_free(username);
+ break;
case aCheckKeys: