mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-03 22:56:33 +02:00
* keydb.h, getkey.c (key_byname): Flag to enable or disable including
disabled keys. Keys specified via keyid (i.e. 0x...) are always included. * getkey.c (get_pubkey_byname, get_seckey_byname2, get_seckey_bynames), keyedit.c (keyedit_menu, menu_addrevoker): Include disabled keys in these functions. * pkclist.c (build_pk_list): Do not include disabled keys for -r or the key prompt. Do include disabled keys for the default key and --encrypt-to. * trustdb.h, trustdb.c (is_disabled): New skipfnc for skipping disabled keys. * gpgv.c (is_disabled): Stub.
This commit is contained in:
parent
bafb6ebf27
commit
fd75f7daac
8 changed files with 91 additions and 14 deletions
|
@ -736,6 +736,44 @@ clear_validity (PKT_public_key *pk)
|
|||
********* Query trustdb values **************
|
||||
***********************************************/
|
||||
|
||||
/* Return true if key is disabled */
|
||||
int
|
||||
is_disabled(void *dummy,u32 *keyid)
|
||||
{
|
||||
int rc;
|
||||
TRUSTREC trec;
|
||||
int disabled=0; /* default to not disabled */
|
||||
PKT_public_key *pk=m_alloc_clear(sizeof(PKT_public_key));
|
||||
|
||||
init_trustdb ();
|
||||
|
||||
/* Note that get_pubkey returns the main key if keyid points to a
|
||||
subkey. That's a good thing here. */
|
||||
rc = get_pubkey(pk, keyid);
|
||||
if(rc)
|
||||
{
|
||||
log_error("error checking disabled status of %08lX: %s\n",
|
||||
(ulong)keyid[1],g10_errstr(rc));
|
||||
goto leave;
|
||||
}
|
||||
|
||||
rc = read_trust_record (pk, &trec);
|
||||
if (rc && rc != -1)
|
||||
{
|
||||
tdbio_invalid ();
|
||||
goto leave;
|
||||
}
|
||||
if (rc == -1) /* no record found, so assume not disabled */
|
||||
goto leave;
|
||||
|
||||
if(trec.r.trust.ownertrust & TRUST_FLAG_DISABLED)
|
||||
disabled=1;
|
||||
|
||||
leave:
|
||||
free_public_key(pk);
|
||||
return disabled;
|
||||
}
|
||||
|
||||
/*
|
||||
* Return the validity information for PK. If the namehash is not
|
||||
* NULL, the validity of the corresponsing user ID is returned,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue