[git] GnuPG - branch, master, updated. gnupg-2.1.0-beta442-3-g45ed901
by Werner Koch
cvs at cvs.gnupg.org
Tue Jun 10 14:54:46 CEST 2014
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The GNU Privacy Guard".
The branch, master has been updated
via 45ed901c466bd72118c2844069f566e190d847d6 (commit)
from b67e4e523e6d19d384e23c5bb03010caebd150e7 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 45ed901c466bd72118c2844069f566e190d847d6
Author: Werner Koch <wk at gnupg.org>
Date: Tue Jun 10 14:54:55 2014 +0200
gpg: Use more specific reason codes for INV_RECP.
* g10/pkclist.c (find_and_check_key, build_pk_list): Use more specific
reasons codes for INV_RECP.
--
GnuPG-bug-id: 1650
diff --git a/doc/DETAILS b/doc/DETAILS
index 17c417e..311dfe3 100644
--- a/doc/DETAILS
+++ b/doc/DETAILS
@@ -583,6 +583,8 @@ pkd:0:1024:B665B1435F4C2 .... FF26ABB:
- 10 :: Key not trusted
- 11 :: Missing certificate
- 12 :: Missing issuer certificate
+ - 13 :: Key disabled
+ - 14 :: Syntax error in specification
Note that for historical reasons the INV_RECP status is also used
for gpgsm's SIGNER command where it relates to signer's of course.
diff --git a/g10/pkclist.c b/g10/pkclist.c
index 49cd309..e783ae4 100644
--- a/g10/pkclist.c
+++ b/g10/pkclist.c
@@ -802,9 +802,18 @@ find_and_check_key (ctrl_t ctrl, const char *name, unsigned int use,
rc = get_pubkey_byname (ctrl, NULL, pk, name, NULL, NULL, 0, 0);
if (rc)
{
+ int code;
+
/* Key not found or other error. */
log_error (_("%s: skipped: %s\n"), name, g10_errstr(rc) );
- send_status_inv_recp (0, name);
+ switch (gpg_err_code (rc))
+ {
+ case GPG_ERR_NO_SECKEY:
+ case GPG_ERR_NO_PUBKEY: code = 1; break;
+ case GPG_ERR_INV_USER_ID: code = 14; break;
+ default: code = 0; break;
+ }
+ send_status_inv_recp (code, name);
free_public_key (pk);
return rc;
}
@@ -813,7 +822,7 @@ find_and_check_key (ctrl_t ctrl, const char *name, unsigned int use,
if (rc)
{
/* Key found but not usable for us (e.g. sign-only key). */
- send_status_inv_recp (0, name);
+ send_status_inv_recp (3, name); /* Wrong key usage */
log_error (_("%s: skipped: %s\n"), name, g10_errstr(rc) );
free_public_key (pk);
return rc;
@@ -824,7 +833,7 @@ find_and_check_key (ctrl_t ctrl, const char *name, unsigned int use,
if ( (trustlevel & TRUST_FLAG_DISABLED) )
{
/* Key has been disabled. */
- send_status_inv_recp (0, name);
+ send_status_inv_recp (13, name);
log_info (_("%s: skipped: public key is disabled\n"), name);
free_public_key (pk);
return G10ERR_UNU_PUBKEY;
@@ -936,7 +945,7 @@ build_pk_list (ctrl_t ctrl,
pk->req_usage = use;
/* We explicitly allow encrypt-to to an disabled key; thus
- we pass 1for the second last argument and 1 as the last
+ we pass 1 for the second last argument and 1 as the last
argument to disable AKL. */
if ( (rc = get_pubkey_byname (ctrl,
NULL, pk, rov->d, NULL, NULL, 1, 1)) )
@@ -981,11 +990,10 @@ build_pk_list (ctrl_t ctrl,
}
else
{
- /* The public key is not usable for encryption or not
- available. */
+ /* The public key is not usable for encryption. */
free_public_key( pk ); pk = NULL;
log_error(_("%s: skipped: %s\n"), rov->d, g10_errstr(rc) );
- send_status_inv_recp (0, rov->d);
+ send_status_inv_recp (3, rov->d); /* Wrong key usage */
goto fail;
}
}
-----------------------------------------------------------------------
Summary of changes:
doc/DETAILS | 2 ++
g10/pkclist.c | 22 +++++++++++++++-------
2 files changed, 17 insertions(+), 7 deletions(-)
hooks/post-receive
--
The GNU Privacy Guard
http://git.gnupg.org
More information about the Gnupg-commits
mailing list