Page MenuHome GnuPG

D488.id1396.diff
No OneTemporary

D488.id1396.diff

diff --git a/g10/call-agent.h b/g10/call-agent.h
--- a/g10/call-agent.h
+++ b/g10/call-agent.h
@@ -207,7 +207,7 @@
/* Delete a key from the agent. */
gpg_error_t agent_delete_key (ctrl_t ctrl, const char *hexkeygrip,
- const char *desc, int force);
+ const char *desc, int force, int stubs_only);
/* Change the passphrase of a key. */
gpg_error_t agent_passwd (ctrl_t ctrl, const char *hexkeygrip, const char *desc,
diff --git a/g10/call-agent.c b/g10/call-agent.c
--- a/g10/call-agent.c
+++ b/g10/call-agent.c
@@ -2519,7 +2519,7 @@
confirmation. */
gpg_error_t
agent_delete_key (ctrl_t ctrl, const char *hexkeygrip, const char *desc,
- int force)
+ int force, int stubs_only)
{
gpg_error_t err;
char line[ASSUAN_LINELENGTH];
@@ -2544,8 +2544,11 @@
return err;
}
- snprintf (line, DIM(line), "DELETE_KEY%s %s",
- force? " --force":"", hexkeygrip);
+ snprintf (line, DIM(line),
+ "DELETE_KEY%s%s %s",
+ force? " --force" : "",
+ stubs_only? " --stub-only" : "",
+ hexkeygrip);
err = assuan_transact (agent_ctx, line, NULL, NULL,
default_inq_cb, &dfltparm,
NULL, NULL);
diff --git a/g10/delkey.c b/g10/delkey.c
--- a/g10/delkey.c
+++ b/g10/delkey.c
@@ -41,7 +41,7 @@
#include "call-agent.h"
static gpg_error_t
-agent_delete_secret_key (ctrl_t ctrl, PKT_public_key *pk)
+agent_delete_secret_key (ctrl_t ctrl, PKT_public_key *pk, int stubs_only)
{
gpg_error_t err;
char *prompt;
@@ -59,7 +59,7 @@
* may also be used for other protocols and thus deleting it from the gpg
* would also delete the key for other tools. */
if (!err && !opt.dry_run)
- err = agent_delete_key (NULL, hexgrip, prompt, opt.answer_yes);
+ err = agent_delete_key (NULL, hexgrip, prompt, opt.answer_yes, stubs_only);
xfree (prompt);
xfree (hexgrip);
@@ -74,7 +74,7 @@
*/
static gpg_error_t
do_delete_key (ctrl_t ctrl, const char *username,
- int secret, int force, int subkeys_only,
+ int secret, int force, int subkeys_only, int stubs_only,
int *r_sec_avail)
{
gpg_error_t err;
@@ -260,7 +260,9 @@
if (subkeys_only && node->pkt->pkttype != PKT_PUBLIC_SUBKEY)
continue;
- err = agent_delete_secret_key (ctrl, node->pkt->pkt.public_key);
+ err = agent_delete_secret_key (ctrl,
+ node->pkt->pkt.public_key,
+ stubs_only);
if (err == GPG_ERR_NO_SECKEY)
continue; /* No secret key for that public (sub)key. */
@@ -352,7 +354,8 @@
* Delete a public or secret key from a keyring.
*/
gpg_error_t
-delete_keys (ctrl_t ctrl, strlist_t names, int secret, int allow_both, int subkeys_only)
+delete_keys (ctrl_t ctrl, strlist_t names,
+ int secret, int allow_both, int subkeys_only, int stubs_only)
{
gpg_error_t err;
int avail;
@@ -363,14 +366,20 @@
for ( ;names ; names=names->next )
{
- err = do_delete_key (ctrl, names->d, secret, force, subkeys_only, &avail);
+ err = do_delete_key (ctrl, names->d,
+ secret, force, subkeys_only, stubs_only,
+ &avail);
if (err && avail)
{
if (allow_both)
{
- err = do_delete_key (ctrl, names->d, 1, 0, subkeys_only, &avail);
+ err = do_delete_key (ctrl, names->d,
+ 1, 0, subkeys_only, stubs_only,
+ &avail);
if (!err)
- err = do_delete_key (ctrl, names->d, 0, 0, subkeys_only, &avail);
+ err = do_delete_key (ctrl, names->d,
+ 0, 0, subkeys_only, stubs_only,
+ &avail);
}
else
{
diff --git a/g10/gpg.c b/g10/gpg.c
--- a/g10/gpg.c
+++ b/g10/gpg.c
@@ -141,6 +141,7 @@
aDeleteKeys,
aDeleteSecretKeys,
aDeleteSecretSubkeys,
+ aDeleteSecretKeyStubs,
aDeleteSecretAndPublicKeys,
aImport,
aFastImport,
@@ -485,6 +486,8 @@
N_("remove keys from the secret keyring")),
ARGPARSE_c (aDeleteSecretSubkeys, "delete-secret-subkeys",
N_("remove subkeys from the secret keyring")),
+ ARGPARSE_c (aDeleteSecretKeyStubs, "delete-secret-key-stubs",
+ N_("remove key stubs from the secret keyring")),
ARGPARSE_c (aQuickSignKey, "quick-sign-key" ,
N_("quickly sign a key")),
ARGPARSE_c (aQuickLSignKey, "quick-lsign-key",
@@ -2657,6 +2660,7 @@
case aEditKey:
case aDeleteSecretKeys:
case aDeleteSecretSubkeys:
+ case aDeleteSecretKeyStubs:
case aDeleteSecretAndPublicKeys:
case aDeleteKeys:
case aPasswd:
@@ -4210,6 +4214,7 @@
case aPasswd:
case aDeleteSecretKeys:
case aDeleteSecretSubkeys:
+ case aDeleteSecretKeyStubs:
case aDeleteSecretAndPublicKeys:
case aQuickKeygen:
case aQuickAddUid:
@@ -4498,6 +4503,7 @@
case aDeleteKeys:
case aDeleteSecretKeys:
case aDeleteSecretSubkeys:
+ case aDeleteSecretKeyStubs:
case aDeleteSecretAndPublicKeys:
sl = NULL;
/* I'm adding these in reverse order as add_to_strlist2
@@ -4506,9 +4512,12 @@
for( ; argc; argc-- )
add_to_strlist2( &sl, argv[argc-1], utf8_strings );
delete_keys (ctrl, sl,
- cmd == aDeleteSecretKeys || cmd == aDeleteSecretSubkeys,
+ (cmd == aDeleteSecretKeys
+ || cmd == aDeleteSecretSubkeys
+ || cmd == aDeleteSecretKeyStubs),
cmd == aDeleteSecretAndPublicKeys,
- cmd == aDeleteSecretSubkeys);
+ cmd == aDeleteSecretSubkeys,
+ cmd == aDeleteSecretKeyStubs);
free_strlist(sl);
break;
diff --git a/g10/main.h b/g10/main.h
--- a/g10/main.h
+++ b/g10/main.h
@@ -303,8 +303,9 @@
/*-- delkey.c --*/
-gpg_error_t delete_keys (ctrl_t ctrl,
- strlist_t names, int secret, int allow_both, int subkeys_only);
+gpg_error_t delete_keys (ctrl_t ctrl, strlist_t names,
+ int secret, int allow_both,
+ int subkeys_only, int stubs_only);
/*-- keygen.c --*/
const char *get_default_pubkey_algo (void);
diff --git a/po/pt.po b/po/pt.po
--- a/po/pt.po
+++ b/po/pt.po
@@ -1998,6 +1998,9 @@
msgid "remove subkeys from the secret keyring"
msgstr "remover subchaves do porta-chaves secreto"
+msgid "remove key stubs from the secret keyring"
+msgstr "remover cotos de chaves do porta-chaves secreto"
+
#, fuzzy
#| msgid "sign a key"
msgid "quickly sign a key"

File Metadata

Mime Type
text/plain
Expires
Tue, Aug 5, 8:58 PM (13 h, 3 m)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
d7/c1/9ee8a3bd93dc339149d4613d88c4

Event Timeline