mirror of
git://git.gnupg.org/gnupg.git
synced 2025-02-01 16:33:02 +01:00
Allow deletion of ephemeral keys.
This commit is contained in:
parent
36d681d98e
commit
9828f9be11
@ -1,3 +1,8 @@
|
||||
2009-03-23 Werner Koch <wk@g10code.com>
|
||||
|
||||
* delete.c (delete_one): Also delete ephemeral certificates if
|
||||
specified uniquely.
|
||||
|
||||
2009-03-20 Werner Koch <wk@g10code.com>
|
||||
|
||||
* keylist.c (list_internal_keys): Set released cert to NULL.
|
||||
|
19
sm/delete.c
19
sm/delete.c
@ -1,5 +1,5 @@
|
||||
/* delete.c
|
||||
* Copyright (C) 2002 Free Software Foundation, Inc.
|
||||
/* delete.c - Delete certificates from the keybox.
|
||||
* Copyright (C) 2002, 2009 Free Software Foundation, Inc.
|
||||
*
|
||||
* This file is part of GnuPG.
|
||||
*
|
||||
@ -43,6 +43,7 @@ delete_one (ctrl_t ctrl, const char *username)
|
||||
KEYDB_HANDLE kh = NULL;
|
||||
ksba_cert_t cert = NULL;
|
||||
int duplicates = 0;
|
||||
int is_ephem = 0;
|
||||
|
||||
rc = keydb_classify_name (username, &desc);
|
||||
if (rc)
|
||||
@ -60,11 +61,21 @@ delete_one (ctrl_t ctrl, const char *username)
|
||||
goto leave;
|
||||
}
|
||||
|
||||
|
||||
/* If the key is specified in a unique way, include ephemeral keys
|
||||
in the search. */
|
||||
if ( desc.mode == KEYDB_SEARCH_MODE_FPR
|
||||
|| desc.mode == KEYDB_SEARCH_MODE_FPR20
|
||||
|| desc.mode == KEYDB_SEARCH_MODE_FPR16
|
||||
|| desc.mode == KEYDB_SEARCH_MODE_KEYGRIP )
|
||||
{
|
||||
is_ephem = 1;
|
||||
keydb_set_ephemeral (kh, 1);
|
||||
}
|
||||
|
||||
rc = keydb_search (kh, &desc, 1);
|
||||
if (!rc)
|
||||
rc = keydb_get_cert (kh, &cert);
|
||||
if (!rc)
|
||||
if (!rc && !is_ephem)
|
||||
{
|
||||
unsigned char fpr[20];
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user