Changeset View
Changeset View
Standalone View
Standalone View
g10/delkey.c
Context not available. | |||||
* key can't be deleted for that reason. | * key can't be deleted for that reason. | ||||
*/ | */ | ||||
static gpg_error_t | static gpg_error_t | ||||
do_delete_key (ctrl_t ctrl, const char *username, int secret, int force, | do_delete_key (ctrl_t ctrl, const char *username, | ||||
int secret, int force, int subkeys_only, | |||||
int *r_sec_avail) | int *r_sec_avail) | ||||
{ | { | ||||
gpg_error_t err; | gpg_error_t err; | ||||
Context not available. | |||||
if (thiskeyonly && targetnode != node) | if (thiskeyonly && targetnode != node) | ||||
continue; | continue; | ||||
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); | ||||
if (err == GPG_ERR_NO_SECKEY) | if (err == GPG_ERR_NO_SECKEY) | ||||
Context not available. | |||||
* Delete a public or secret key from a keyring. | * Delete a public or secret key from a keyring. | ||||
*/ | */ | ||||
gpg_error_t | gpg_error_t | ||||
delete_keys (ctrl_t ctrl, strlist_t names, int secret, int allow_both) | delete_keys (ctrl_t ctrl, strlist_t names, int secret, int allow_both, int subkeys_only) | ||||
{ | { | ||||
gpg_error_t err; | gpg_error_t err; | ||||
int avail; | int avail; | ||||
Context not available. | |||||
for ( ;names ; names=names->next ) | for ( ;names ; names=names->next ) | ||||
{ | { | ||||
err = do_delete_key (ctrl, names->d, secret, force, &avail); | err = do_delete_key (ctrl, names->d, secret, force, subkeys_only, &avail); | ||||
if (err && avail) | if (err && avail) | ||||
{ | { | ||||
if (allow_both) | if (allow_both) | ||||
{ | { | ||||
err = do_delete_key (ctrl, names->d, 1, 0, &avail); | err = do_delete_key (ctrl, names->d, 1, 0, subkeys_only, &avail); | ||||
if (!err) | if (!err) | ||||
err = do_delete_key (ctrl, names->d, 0, 0, &avail); | err = do_delete_key (ctrl, names->d, 0, 0, subkeys_only, &avail); | ||||
} | } | ||||
else | else | ||||
{ | { | ||||
Context not available. |