diff options
Diffstat (limited to 'g10')
-rw-r--r-- | g10/call-agent.c | 6 | ||||
-rw-r--r-- | g10/call-keyboxd.c | 26 | ||||
-rw-r--r-- | g10/keyedit.c | 2 |
3 files changed, 29 insertions, 5 deletions
diff --git a/g10/call-agent.c b/g10/call-agent.c index c44c1cddb..f545b6690 100644 --- a/g10/call-agent.c +++ b/g10/call-agent.c @@ -1996,7 +1996,7 @@ agent_get_passphrase (const char *cache_id, char *arg4 = NULL; membuf_t data; struct default_inq_parm_s dfltparm; - int have_newsymkey; + int have_newsymkey, wasconf; memset (&dfltparm, 0, sizeof dfltparm); @@ -2048,10 +2048,14 @@ agent_get_passphrase (const char *cache_id, xfree (arg4); init_membuf_secure (&data, 64); + wasconf = assuan_get_flag (agent_ctx, ASSUAN_CONFIDENTIAL); + assuan_begin_confidential (agent_ctx); rc = assuan_transact (agent_ctx, line, put_membuf_cb, &data, default_inq_cb, &dfltparm, NULL, NULL); + if (!wasconf) + assuan_end_confidential (agent_ctx); if (rc) xfree (get_membuf (&data, NULL)); diff --git a/g10/call-keyboxd.c b/g10/call-keyboxd.c index 960979aae..bc3806f0b 100644 --- a/g10/call-keyboxd.c +++ b/g10/call-keyboxd.c @@ -393,6 +393,23 @@ keydb_get_keyblock (KEYDB_HANDLE hd, kbnode_t *ret_kb) } +/* Default status callback used to show diagnostics from the keyboxd */ +static gpg_error_t +keydb_default_status_cb (void *opaque, const char *line) +{ + const char *s; + + (void)opaque; + + if ((s = has_leading_keyword (line, "NOTE"))) + log_info (_("Note: %s\n"), s); + else if ((s = has_leading_keyword (line, "WARNING"))) + log_info (_("WARNING: %s\n"), s); + + return 0; +} + + /* Communication object for STORE commands. */ struct store_parm_s @@ -472,7 +489,8 @@ keydb_update_keyblock (ctrl_t ctrl, KEYDB_HANDLE hd, kbnode_t kb) err = assuan_transact (hd->kbl->ctx, "STORE --update", NULL, NULL, store_inq_cb, &parm, - NULL, NULL); + keydb_default_status_cb, hd); + leave: iobuf_close (iobuf); @@ -523,7 +541,7 @@ keydb_insert_keyblock (KEYDB_HANDLE hd, kbnode_t kb) err = assuan_transact (hd->kbl->ctx, "STORE --insert", NULL, NULL, store_inq_cb, &parm, - NULL, NULL); + keydb_default_status_cb, hd); leave: iobuf_close (iobuf); @@ -569,7 +587,7 @@ keydb_delete_keyblock (KEYDB_HANDLE hd) err = assuan_transact (hd->kbl->ctx, line, NULL, NULL, NULL, NULL, - NULL, NULL); + keydb_default_status_cb, hd); leave: return err; @@ -656,6 +674,8 @@ search_status_cb (void *opaque, const char *line) } } } + else + err = keydb_default_status_cb (opaque, line); return err; } diff --git a/g10/keyedit.c b/g10/keyedit.c index 21c1ee8d8..1f614fb7e 100644 --- a/g10/keyedit.c +++ b/g10/keyedit.c @@ -4794,7 +4794,7 @@ fail: /* * Ask for a new additional decryption subkey and add it to the key * block. Returns true if the keyblock was changed and false - * otherwise. If ADSKFPR is not NULL, this fucntion has been called + * otherwise. If ADSKFPR is not NULL, this function has been called * by quick_addadsk and gives the fingerprint of the to be added key. */ static int |