aboutsummaryrefslogtreecommitdiffstats
path: root/tools/card-call-scd.c
diff options
context:
space:
mode:
authorWerner Koch <[email protected]>2019-03-05 16:40:08 +0000
committerWerner Koch <[email protected]>2019-03-05 16:40:08 +0000
commit8d4af54ddd039d47e9c4803559193fcca97f0a46 (patch)
tree574703e89a3e6f899765c4660d0f353c1bec52c9 /tools/card-call-scd.c
parentscd: Rename a shared info field name. (diff)
downloadgnupg-8d4af54ddd039d47e9c4803559193fcca97f0a46.tar.gz
gnupg-8d4af54ddd039d47e9c4803559193fcca97f0a46.zip
card: Print card version. Check for bad Yubikeys.
* scd/app.c (app_new_register): Set card version for Yubikeys. (app_write_learn_status): Print CARDVERSION and APPVERSION. * tools/card-call-scd.c (learn_status_cb): Detect them. * tools/gpg-card.h (struct card_info_s): Add appversion and cardversion. * tools/gpg-card.c (list_openpgp): Remove version printing from serial number. (print_a_version): New. (list_card): Print card and app version. (cmd_generate): Do not allow broken Yubikeys. Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'tools/card-call-scd.c')
-rw-r--r--tools/card-call-scd.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/tools/card-call-scd.c b/tools/card-call-scd.c
index f7dbfd6ec..0a01bf5ca 100644
--- a/tools/card-call-scd.c
+++ b/tools/card-call-scd.c
@@ -818,7 +818,7 @@ learn_status_cb (void *opaque, const char *line)
parm->chvusage[0] = byte1;
parm->chvusage[1] = byte2;
}
- break;
+ break;
case 10:
if (!memcmp (keyword, "PUBKEY-URL", keywordlen))
@@ -880,6 +880,13 @@ learn_status_cb (void *opaque, const char *line)
xfree (buf);
}
+ else if (!memcmp (keyword, "APPVERSION", keywordlen))
+ {
+ unsigned int val = 0;
+
+ sscanf (line, "%x", &val);
+ parm->appversion = val;
+ }
break;
case 11:
@@ -944,6 +951,13 @@ learn_status_cb (void *opaque, const char *line)
}
}
}
+ else if (!memcmp (keyword, "CARDVERSION", keywordlen))
+ {
+ unsigned int val = 0;
+
+ sscanf (line, "%x", &val);
+ parm->cardversion = val;
+ }
break;
case 12: