diff options
author | NIIBE Yutaka <[email protected]> | 2018-11-15 04:57:31 +0000 |
---|---|---|
committer | NIIBE Yutaka <[email protected]> | 2018-11-15 04:57:31 +0000 |
commit | e955ca245ea08e68ae2397f1583c8728d72acbd8 (patch) | |
tree | 002a9466592b12066f35823a0b2a4778e521d014 | |
parent | scd: Make "learn" report about KDF data object. (diff) | |
download | gnupg-e955ca245ea08e68ae2397f1583c8728d72acbd8.tar.gz gnupg-e955ca245ea08e68ae2397f1583c8728d72acbd8.zip |
card: Display UIF setting.
* g10/call-agent.h (agent_card_info_s): Add UIF fields.
* g10/call-agent.c (learn_status_cb): Put UIF DOs info.
* g10/card-util.c (current_card_status): Output for UIF.
Signed-off-by: NIIBE Yutaka <[email protected]>
Diffstat (limited to '')
-rw-r--r-- | g10/call-agent.c | 11 | ||||
-rw-r--r-- | g10/call-agent.h | 3 | ||||
-rw-r--r-- | g10/card-util.c | 11 |
3 files changed, 24 insertions, 1 deletions
diff --git a/g10/call-agent.c b/g10/call-agent.c index 2dbacf4ef..11011aea4 100644 --- a/g10/call-agent.c +++ b/g10/call-agent.c @@ -711,6 +711,17 @@ learn_status_cb (void *opaque, const char *line) { parm->kdf_do_enabled = 1; } + else if (keywordlen == 5 && !memcmp (keyword, "UIF-", 4) + && strchr("123", keyword[4])) + { + unsigned char *data; + int no = keyword[4] - '1'; + + log_assert (no >= 0 && no <= 2); + data = unescape_status_string (line); + parm->uif[no] = (data[0] != 0xff); + xfree (data); + } return 0; } diff --git a/g10/call-agent.h b/g10/call-agent.h index 1d232f7be..8ea8ffea6 100644 --- a/g10/call-agent.h +++ b/g10/call-agent.h @@ -72,7 +72,8 @@ struct agent_card_info_s unsigned int bt:1; /* Button for confirmation available. */ } extcap; unsigned int status_indicator; - int kdf_do_enabled; /* Card has a KDF object */ + int kdf_do_enabled; /* True if card has a KDF object. */ + int uif[3]; /* True if User Interaction Flag is on. */ }; diff --git a/g10/card-util.c b/g10/card-util.c index 8de061aa4..eca248433 100644 --- a/g10/card-util.c +++ b/g10/card-util.c @@ -516,6 +516,11 @@ current_card_status (ctrl_t ctrl, estream_t fp, { es_fprintf (fp, "kdf:%s:\n", info.kdf_do_enabled ? "on" : "off"); } + if (info.extcap.bt) + { + es_fprintf (fp, "uif:%d:%d:%d:\n", + info.uif[0], info.uif[1], info.uif[2]); + } for (i=0; i < 4; i++) { @@ -627,6 +632,12 @@ current_card_status (ctrl_t ctrl, estream_t fp, tty_fprintf (fp, "KDF setting ......: %s\n", info.kdf_do_enabled ? "on" : "off"); } + if (info.extcap.bt) + { + tty_fprintf (fp, "UIF setting ......: Sign=%s Decrypt=%s Auth=%s\n", + info.uif[0] ? "on" : "off", info.uif[1] ? "on" : "off", + info.uif[2] ? "on" : "off"); + } tty_fprintf (fp, "Signature key ....:"); print_shax_fpr (fp, info.fpr1len? info.fpr1:NULL, info.fpr1len); if (info.fpr1len && info.fpr1time) |