mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
gpg: Delete secret key after "keytocard".
* g10/card-util.c (card_store_subkey): Add arg processed_keys. * g10/keyedit.c (keyedit_menu): Delete secret key. -- This used to work using the gpg-agent: learn we called at "save" time. However, the recent change inhibited the creation of a shadow key by learn if a regular key still exists. Now we do an explicit delete key at save time. This syncs the behaviour with the description of the man page. GnuPG-bug-id: 6378
This commit is contained in:
parent
2e065b4bd2
commit
5118beeec1
3 changed files with 48 additions and 9 deletions
|
@ -1781,12 +1781,13 @@ card_generate_subkey (ctrl_t ctrl, kbnode_t pub_keyblock)
|
|||
}
|
||||
|
||||
|
||||
/* Store the key at NODE into the smartcard and modify NODE to
|
||||
carry the serialno stuff instead of the actual secret key
|
||||
parameters. USE is the usage for that key; 0 means any
|
||||
usage. */
|
||||
/* Store the key at NODE into the smartcard and modify NODE to carry
|
||||
the serialno stuff instead of the actual secret key parameters.
|
||||
USE is the usage for that key; 0 means any usage. If
|
||||
PROCESSED_KEYS is not NULL it is a poiter to an strlist which will
|
||||
be filled with the keygrips of successfully stored keys. */
|
||||
int
|
||||
card_store_subkey (KBNODE node, int use)
|
||||
card_store_subkey (KBNODE node, int use, strlist_t *processed_keys)
|
||||
{
|
||||
struct agent_card_info_s info;
|
||||
int okay = 0;
|
||||
|
@ -1875,7 +1876,11 @@ card_store_subkey (KBNODE node, int use)
|
|||
if (rc)
|
||||
log_error (_("KEYTOCARD failed: %s\n"), gpg_strerror (rc));
|
||||
else
|
||||
okay = 1;
|
||||
{
|
||||
okay = 1;
|
||||
if (processed_keys)
|
||||
add_to_strlist (processed_keys, hexgrip);
|
||||
}
|
||||
xfree (hexgrip);
|
||||
|
||||
leave:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue