Page Menu
Home
GnuPG
Search
Configure Global Search
Log In
Files
F26765926
D488.id1396.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Size
6 KB
Subscribers
None
D488.id1396.diff
View Options
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
Details
Attached
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
Attached To
D488: gpg: add the --delete-secret-key-stubs command
Event Timeline
Log In to Comment