diff options
author | NIIBE Yutaka <[email protected]> | 2018-10-11 06:41:49 +0000 |
---|---|---|
committer | NIIBE Yutaka <[email protected]> | 2018-12-18 01:18:23 +0000 |
commit | ffe31f405f9b5e4929e95c3d66c613052cb7727e (patch) | |
tree | 150e13ed4fbb7312c510751d73c610eab0eb84f1 /scd/command.c | |
parent | agent: Support --ack option for POPUPPINPADPROMPT. (diff) | |
download | gnupg-ffe31f405f9b5e4929e95c3d66c613052cb7727e.tar.gz gnupg-ffe31f405f9b5e4929e95c3d66c613052cb7727e.zip |
scd: Support "acknowledge button" feature.
* scd/apdu.c (set_prompt_cb): New member function.
(set_prompt_cb_ccid_reader): New function.
(open_ccid_reader): Initialize with set_prompt_cb_ccid_reader.
(apdu_set_prompt_cb): New.
* scd/app.c (lock_app, unlock_app): Add call to apdu_set_prompt_cb.
* ccid-driver.c (ccid_set_prompt_cb): New.
(bulk_in): Call ->prompt_cb when timer extension.
* scd/command.c (popup_prompt): New.
--
Cherry-picked master commit of:
7a5a4c4cac8709f7c413e94cd0b40f4123baa1e5
Signed-off-by: NIIBE Yutaka <[email protected]>
Diffstat (limited to '')
-rw-r--r-- | scd/command.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/scd/command.c b/scd/command.c index 66d9fb971..0a9654693 100644 --- a/scd/command.c +++ b/scd/command.c @@ -1898,6 +1898,34 @@ send_status_direct (ctrl_t ctrl, const char *keyword, const char *args) } +void +popup_prompt (void *opaque, int on) +{ + ctrl_t ctrl = opaque; + + if (ctrl) + { + assuan_context_t ctx = ctrl->server_local->assuan_ctx; + + if (ctx) + { + const char *cmd; + gpg_error_t err; + unsigned char *value; + size_t valuelen; + + if (on) + cmd = "POPUPPINPADPROMPT --ack"; + else + cmd = "DISMISSPINPADPROMPT"; + err = assuan_inquire (ctx, cmd, &value, &valuelen, 100); + if (!err) + xfree (value); + } + } +} + + /* Helper to send the clients a status change notification. */ void send_client_notifications (app_t app, int removal) |