aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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)