From 525613ad5ad09bbaa10bfac2fe593eb16bc80b28 Mon Sep 17 00:00:00 2001 From: aj Date: Thu, 26 Jan 2006 19:02:02 +0000 Subject: [PATCH] add atr and os identification for cardos 4.3 (plain, not b, not likely to be ever seen, but 100% compatible to 4.3b as far as I know - only slower). git-svn-id: https://www.opensc-project.org/svnp/opensc/trunk@2827 c6295689-39f2-0310-b995-f0e70906c6a9 --- src/libopensc/card-cardos.c | 2 ++ src/libopensc/cards.h | 1 + src/tools/cardos-info.c | 2 ++ 3 files changed, 5 insertions(+) diff --git a/src/libopensc/card-cardos.c b/src/libopensc/card-cardos.c index 11603421..dfc75d93 100644 --- a/src/libopensc/card-cardos.c +++ b/src/libopensc/card-cardos.c @@ -53,6 +53,8 @@ static struct sc_atr_table cardos_atrs[] = { { "3b:f2:98:00:ff:c1:10:31:fe:55:c8:04:12", NULL, NULL, SC_CARD_TYPE_CARDOS_GENERIC, 0, NULL }, /* M4.2 */ { "3b:f2:18:00:ff:c1:0a:31:fe:55:c8:06:8a", NULL, NULL, SC_CARD_TYPE_CARDOS_M4_2, 0, NULL }, + /* M4.3 */ + { "3b:f2:18:00:02:c1:0a:31:fe;55:c8:07:76", NULL, NULL, SC_CARD_TYPE_CARDOS_M4_3, 0, NULL }, /* Italian eID card, postecert */ { "3b:e9:00:ff:c1:10:31:fe:55:00:64:05:00:c8:02:31:80:00:47", NULL, NULL, SC_CARD_TYPE_CARDOS_GENERIC, 0, NULL }, /* Italian eID card, infocamere */ diff --git a/src/libopensc/cards.h b/src/libopensc/cards.h index a78f5e1c..de960347 100644 --- a/src/libopensc/cards.h +++ b/src/libopensc/cards.h @@ -40,6 +40,7 @@ enum { SC_CARD_TYPE_CARDOS_BASE = 1000, SC_CARD_TYPE_CARDOS_GENERIC, SC_CARD_TYPE_CARDOS_M4_2, + SC_CARD_TYPE_CARDOS_M4_3, /* flex/cyberflex drivers */ SC_CARD_TYPE_FLEX_BASE = 2000, diff --git a/src/tools/cardos-info.c b/src/tools/cardos-info.c index f148adf7..b891c317 100644 --- a/src/tools/cardos-info.c +++ b/src/tools/cardos-info.c @@ -137,6 +137,8 @@ int cardos_info(void) printf(" (that's CardOS M4.01a)\n"); } else if (apdu.resp[0] == 0xc8 && apdu.resp[1] == 0x06) { printf(" (that's CardOS M4.2)\n"); + } else if (apdu.resp[0] == 0xc8 && apdu.resp[1] == 0x07) { + printf(" (that's CardOS M4.3)\n"); } else if (apdu.resp[0] == 0xc8 && apdu.resp[1] == 0x08) { printf(" (that's CardOS M4.3b)\n"); } else {