aboutsummaryrefslogtreecommitdiffstats
path: root/sm/call-dirmngr.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2016-11-10 16:01:19 +0000
committerWerner Koch <[email protected]>2016-11-10 16:07:28 +0000
commit5d13581f4737c18430f6572dd4ef486d1ad80dd1 (patch)
treed90f1618778b7534bb195aa7c09060cb631484dd /sm/call-dirmngr.c
parentsm: Remove unused arg SECRET from keydb functions. (diff)
downloadgnupg-5d13581f4737c18430f6572dd4ef486d1ad80dd1.tar.gz
gnupg-5d13581f4737c18430f6572dd4ef486d1ad80dd1.zip
gpg,sm: Add STATUS_ERROR keydb_search and keydb_add-resource.
* g10/keydb.c (keydb_add_resource): Make ANY_REGISTERED file-global. Write a STATUS_ERROR. (maybe_create_keyring_or_box): Check for non-accessible but existant file. (keydb_search): Write a STATUS_ERROR if no keyring has been registered but continue to return NOT_FOUND. * sm/keydb.c (keydb_add_resource): Rename ANY_PUBLIC to ANY_REGISTERED and make file-global. Write a STATUS_ERROR. (keydb_search): Write a STATUS_ERROR if no keyring has been registered but continue to return NOT_FOUND. Also add new arg CTRL and change all callers to pass it down. Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'sm/call-dirmngr.c')
-rw-r--r--sm/call-dirmngr.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/sm/call-dirmngr.c b/sm/call-dirmngr.c
index dd566417c..d0250634a 100644
--- a/sm/call-dirmngr.c
+++ b/sm/call-dirmngr.c
@@ -78,6 +78,7 @@ struct lookup_parm_s {
};
struct run_command_parm_s {
+ ctrl_t ctrl;
assuan_context_t ctx;
};
@@ -407,7 +408,7 @@ inq_certificate (void *opaque, const char *line)
ksba_cert_t cert;
- err = gpgsm_find_cert (line, ski, &cert);
+ err = gpgsm_find_cert (parm->ctrl, line, ski, &cert);
if (err)
{
log_error ("certificate not found: %s\n", gpg_strerror (err));
@@ -580,7 +581,7 @@ gpgsm_dirmngr_isvalid (ctrl_t ctrl,
if (!kh)
rc = gpg_error (GPG_ERR_ENOMEM);
if (!rc)
- rc = keydb_search_fpr (kh, stparm.fpr);
+ rc = keydb_search_fpr (ctrl, kh, stparm.fpr);
if (!rc)
rc = keydb_get_cert (kh, &rspcert);
if (rc)
@@ -928,7 +929,7 @@ run_command_inq_cb (void *opaque, const char *line)
if (!*line)
return gpg_error (GPG_ERR_ASS_PARAMETER);
- err = gpgsm_find_cert (line, NULL, &cert);
+ err = gpgsm_find_cert (parm->ctrl, line, NULL, &cert);
if (err)
{
log_error ("certificate not found: %s\n", gpg_strerror (err));
@@ -1002,6 +1003,7 @@ gpgsm_dirmngr_run_command (ctrl_t ctrl, const char *command,
if (rc)
return rc;
+ parm.ctrl = ctrl;
parm.ctx = dirmngr_ctx;
len = strlen (command) + 1;