aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNIIBE Yutaka <[email protected]>2018-11-15 04:57:31 +0000
committerNIIBE Yutaka <[email protected]>2018-11-15 04:57:31 +0000
commite955ca245ea08e68ae2397f1583c8728d72acbd8 (patch)
tree002a9466592b12066f35823a0b2a4778e521d014
parentscd: Make "learn" report about KDF data object. (diff)
downloadgnupg-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.c11
-rw-r--r--g10/call-agent.h3
-rw-r--r--g10/card-util.c11
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)