- Add atrmask to sc_atr_table
git-svn-id: https://www.opensc-project.org/svnp/opensc/trunk@2160 c6295689-39f2-0310-b995-f0e70906c6a9
This commit is contained in:
parent
cdd240397f
commit
ece96aff98
|
@ -138,16 +138,16 @@ static size_t next_idx = -1;
|
|||
|
||||
static struct sc_atr_table belpic_atrs[] = {
|
||||
/* Applet V1.1 */
|
||||
{ "3B:98:13:40:0A:A5:03:01:01:01:AD:13:11", NULL, TYPE_BELPIC_EID },
|
||||
{ "3B:98:13:40:0A:A5:03:01:01:01:AD:13:11", NULL, NULL, TYPE_BELPIC_EID },
|
||||
/* Applet V1.0 with new EMV-compatible ATR */
|
||||
{ "3B:98:94:40:0A:A5:03:01:01:01:AD:13:10", NULL, TYPE_BELPIC_EID },
|
||||
{ "3B:98:94:40:0A:A5:03:01:01:01:AD:13:10", NULL, NULL, TYPE_BELPIC_EID },
|
||||
/* Applet beta 5 + V1.0 */
|
||||
{ "3B:98:94:40:FF:A5:03:01:01:01:AD:13:10", NULL, TYPE_BELPIC_EID },
|
||||
{ "3B:98:94:40:FF:A5:03:01:01:01:AD:13:10", NULL, NULL, TYPE_BELPIC_EID },
|
||||
#if 0
|
||||
/* Applet beta 3 + 4 */
|
||||
{ "3B:98:11:40:FF:A5:03:01:01:01:AD:13:04", NULL, TYPE_BELPIC_EID },
|
||||
{ "3B:98:11:40:FF:A5:03:01:01:01:AD:13:04", NULL, NULL, TYPE_BELPIC_EID },
|
||||
/* Applet beta 2 */
|
||||
{ "3B:68:00:00:29:05:01:02:01:AD:13:03", NULL, TYPE_BELPIC_EID },
|
||||
{ "3B:68:00:00:29:05:01:02:01:AD:13:03", NULL, NULL, TYPE_BELPIC_EID },
|
||||
#endif
|
||||
{ NULL }
|
||||
};
|
||||
|
|
|
@ -42,15 +42,15 @@ static struct sc_card_driver etoken_drv = {
|
|||
|
||||
static struct sc_atr_table etoken_atrs[] = {
|
||||
/* 4.0 */
|
||||
{ "3b:e2:00:ff:c1:10:31:fe:55:c8:02:9c" },
|
||||
{ "3b:e2:00:ff:c1:10:31:fe:55:c8:02:9c", NULL },
|
||||
/* 4.01 */
|
||||
{ "3b:f2:98:00:ff:c1:10:31:fe:55:c8:03:15" },
|
||||
{ "3b:f2:98:00:ff:c1:10:31:fe:55:c8:03:15", NULL },
|
||||
/* 4.01a */
|
||||
{ "3b:f2:98:00:ff:c1:10:31:fe:55:c8:04:12" },
|
||||
{ "3b:f2:98:00:ff:c1:10:31:fe:55:c8:04:12", NULL },
|
||||
/* Italian eID card */
|
||||
{ "3b:e9:00:ff:c1:10:31:fe:55:00:64:05:00:c8:02:31:80:00:47" },
|
||||
{ "3b:e9:00:ff:c1:10:31:fe:55:00:64:05:00:c8:02:31:80:00:47", NULL },
|
||||
/* Italian eID card from Infocamere */
|
||||
{ "3b:fb:98:00:ff:c1:10:31:fe:55:00:64:05:20:47:03:31:80:00:90:00:f3" },
|
||||
{ "3b:fb:98:00:ff:c1:10:31:fe:55:00:64:05:20:47:03:31:80:00:90:00:f3", NULL },
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
|
|
|
@ -37,45 +37,45 @@
|
|||
static struct sc_atr_table flex_atrs[] = {
|
||||
/* Cryptoflex */
|
||||
/* 8k */
|
||||
{ "3B:95:15:40:FF:68:01:02:02:04", "Cryptoflex 8K", TYPE_CRYPTOFLEX },
|
||||
{ "3B:95:15:40:FF:68:01:02:02:04", NULL, "Cryptoflex 8K", TYPE_CRYPTOFLEX },
|
||||
/* 8k */
|
||||
{ "3B:85:40:20:68:01:01:05:01", "Cryptoflex 8K", TYPE_CRYPTOFLEX },
|
||||
{ "3B:85:40:20:68:01:01:05:01", NULL, "Cryptoflex 8K", TYPE_CRYPTOFLEX },
|
||||
/* 16k */
|
||||
{ "3B:95:94:40:FF:63:01:01:02:01", "Cryptoflex 16K", TYPE_CRYPTOFLEX|FLAG_KEYGEN },
|
||||
{ "3B:95:94:40:FF:63:01:01:02:01", NULL, "Cryptoflex 16K", TYPE_CRYPTOFLEX|FLAG_KEYGEN },
|
||||
/* 32K v4 */
|
||||
{ "3B:95:18:40:FF:64:02:01:01:02", "Cryptoflex 32K v4", TYPE_CRYPTOFLEX|FLAG_KEYGEN },
|
||||
{ "3B:95:18:40:FF:64:02:01:01:02", NULL, "Cryptoflex 32K v4", TYPE_CRYPTOFLEX|FLAG_KEYGEN },
|
||||
/* 32K e-gate */
|
||||
{ "3B:95:18:40:FF:62:01:02:01:04", "Cryptoflex 32K e-gate", TYPE_CRYPTOFLEX|FLAG_KEYGEN },
|
||||
{ "3B:95:18:40:FF:62:01:02:01:04", NULL, "Cryptoflex 32K e-gate", TYPE_CRYPTOFLEX|FLAG_KEYGEN },
|
||||
/* 32K e-gate v4 */
|
||||
{ "3B:95:18:40:FF:62:04:01:01:05", "Cryptoflex 32K e-gate v4", TYPE_CRYPTOFLEX|FLAG_KEYGEN },
|
||||
{ "3B:95:18:40:FF:62:04:01:01:05", NULL, "Cryptoflex 32K e-gate v4", TYPE_CRYPTOFLEX|FLAG_KEYGEN },
|
||||
|
||||
{ "3B:E2:00:00:40:20:49:06", "Cryptoflex", TYPE_CRYPTOFLEX },
|
||||
{ "3B:E2:00:00:40:20:49:06", NULL, "Cryptoflex", TYPE_CRYPTOFLEX },
|
||||
/* + full DES option */
|
||||
{ "3B:E2:00:00:40:20:49:05", "Cryptoflex", TYPE_CRYPTOFLEX|FLAG_FULL_DES },
|
||||
{ "3B:E2:00:00:40:20:49:05", NULL, "Cryptoflex", TYPE_CRYPTOFLEX|FLAG_FULL_DES },
|
||||
/* + Key Generation */
|
||||
{ "3B:E2:00:00:40:20:49:07", "Cryptoflex", TYPE_CRYPTOFLEX|FLAG_KEYGEN },
|
||||
{ "3B:E2:00:00:40:20:49:07", NULL, "Cryptoflex", TYPE_CRYPTOFLEX|FLAG_KEYGEN },
|
||||
/* + Key Generation */
|
||||
{ "3B:85:40:20:68:01:01:03:05", "Cryptoflex", TYPE_CRYPTOFLEX|FLAG_KEYGEN },
|
||||
{ "3B:85:40:20:68:01:01:03:05", NULL, "Cryptoflex", TYPE_CRYPTOFLEX|FLAG_KEYGEN },
|
||||
|
||||
/* Multiflex */
|
||||
/* 3K */
|
||||
{ "3B:02:14:50", "Multiflex 3K", TYPE_MULTIFLEX },
|
||||
{ "3B:02:14:50", NULL, "Multiflex 3K", TYPE_MULTIFLEX },
|
||||
/* 4K */
|
||||
{ "3B:19:14:55:90:01:02:01:00:05:04:B0", "Multiflex 4K", TYPE_MULTIFLEX },
|
||||
{ "3B:19:14:55:90:01:02:01:00:05:04:B0", NULL, "Multiflex 4K", TYPE_MULTIFLEX },
|
||||
/* 8K */
|
||||
{ "3B:32:15:00:06:80", "Multiflex 8K", TYPE_MULTIFLEX },
|
||||
{ "3B:32:15:00:06:80", NULL, "Multiflex 8K", TYPE_MULTIFLEX },
|
||||
/* 8K + full DES option */
|
||||
{ "3B:32:15:00:06:95", "Multiflex 8K", TYPE_MULTIFLEX },
|
||||
{ "3B:32:15:00:06:95", NULL, "Multiflex 8K", TYPE_MULTIFLEX },
|
||||
/* 8K */
|
||||
{ "3B:19:14:59:01:01:0F:01:00:05:08:B0", "Multiflex 8K", TYPE_MULTIFLEX },
|
||||
{ "3B:19:14:59:01:01:0F:01:00:05:08:B0", NULL, "Multiflex 8K", TYPE_MULTIFLEX },
|
||||
/* 8K */
|
||||
{ "3B:19:14:55:90:01:01:01:00:05:08:B0", "Multiflex 8K", TYPE_MULTIFLEX },
|
||||
{ "3B:19:14:55:90:01:01:01:00:05:08:B0", NULL, "Multiflex 8K", TYPE_MULTIFLEX },
|
||||
|
||||
/* Cyberflex Access */
|
||||
/* Crypto */
|
||||
{ "3B:16:94:81:10:06:01:81:3F", "Cyberflex Access", TYPE_CYBERFLEX },
|
||||
{ "3B:16:94:81:10:06:01:81:3F", NULL, "Cyberflex Access", TYPE_CYBERFLEX },
|
||||
/* Aug. Crypto */
|
||||
{ "3B:16:94:81:10:06:01:81:2F", "Cyberflex Access", TYPE_CYBERFLEX },
|
||||
{ "3B:16:94:81:10:06:01:81:2F", NULL, "Cyberflex Access", TYPE_CYBERFLEX },
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
|
|
|
@ -102,13 +102,13 @@ static int gpk_get_info(struct sc_card *, u8, u8, u8 *, size_t);
|
|||
* ATRs of GPK4000 cards courtesy of libscez
|
||||
*/
|
||||
static struct sc_atr_table gpk_atrs[] = {
|
||||
{ "3B:27:00:80:65:A2:04:01:01:37", "GPK 4K", GPK4000_s },
|
||||
{ "3B:27:00:80:65:A2:05:01:01:37", "GPK 4K", GPK4000_sp },
|
||||
{ "3B:27:00:80:65:A2:0C:01:01:37", "GPK 4K", GPK4000_su256 },
|
||||
{ "3B:A7:00:40:14:80:65:A2:14:01:01:37", "GPK 4K", GPK4000_sdo },
|
||||
{ "3B:A7:00:40:18:80:65:A2:08:01:01:52", "GPK 8K", GPK8000_8K },
|
||||
{ "3B:A7:00:40:18:80:65:A2:09:01:01:52", "GPK 8K", GPK8000_16K },
|
||||
{ "3B:A7:00:40:18:80:65:A2:09:01:02:52", "GPK 16K", GPK16000 },
|
||||
{ "3B:27:00:80:65:A2:04:01:01:37", NULL, "GPK 4K", GPK4000_s },
|
||||
{ "3B:27:00:80:65:A2:05:01:01:37", NULL, "GPK 4K", GPK4000_sp },
|
||||
{ "3B:27:00:80:65:A2:0C:01:01:37", NULL, "GPK 4K", GPK4000_su256 },
|
||||
{ "3B:A7:00:40:14:80:65:A2:14:01:01:37", NULL, "GPK 4K", GPK4000_sdo },
|
||||
{ "3B:A7:00:40:18:80:65:A2:08:01:01:52", NULL, "GPK 8K", GPK8000_8K },
|
||||
{ "3B:A7:00:40:18:80:65:A2:09:01:01:52", NULL, "GPK 8K", GPK8000_16K },
|
||||
{ "3B:A7:00:40:18:80:65:A2:09:01:02:52", NULL, "GPK 16K", GPK16000 },
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
|
|
|
@ -24,10 +24,10 @@
|
|||
#include <stdlib.h>
|
||||
|
||||
static struct sc_atr_table jcop_atrs[] = {
|
||||
{ "3B:E6:00:FF:81:31:FE:45:4A:43:4F:50:33:31:06" },
|
||||
{ "3B:E6:00:FF:81:31:FE:45:4A:43:4F:50:33:31:06", NULL },
|
||||
#if 0
|
||||
/* Requires secure messaging */
|
||||
{ "3B:E6:00:FF:81:31:FE:45:4A:43:4F:50:32:31:06" },
|
||||
{ "3B:E6:00:FF:81:31:FE:45:4A:43:4F:50:32:31:06", NULL },
|
||||
#endif
|
||||
{ NULL }
|
||||
};
|
||||
|
|
|
@ -34,9 +34,9 @@
|
|||
#define TYPE_ESTEID 1
|
||||
|
||||
static struct sc_atr_table mcrd_atrs[] = {
|
||||
{ "3B:FF:94:00:FF:80:B1:FE:45:1F:03:00:68:D2:76:00:00:28:FF:05:1E:31:80:00:90:00:23", "German BMI", TYPE_GENERIC },
|
||||
{ "3B:FE:94:00:FF:80:B1:FA:45:1F:03:45:73:74:45:49:44:20:76:65:72:20:31:2E:30:43", "EstEID (cold)", TYPE_ESTEID },
|
||||
{ "3B:6E:00:FF:45:73:74:45:49:44:20:76:65:72:20:31:2E:30", "EstEID (warm)", TYPE_ESTEID },
|
||||
{ "3B:FF:94:00:FF:80:B1:FE:45:1F:03:00:68:D2:76:00:00:28:FF:05:1E:31:80:00:90:00:23", NULL, "German BMI", TYPE_GENERIC },
|
||||
{ "3B:FE:94:00:FF:80:B1:FA:45:1F:03:45:73:74:45:49:44:20:76:65:72:20:31:2E:30:43", NULL, "EstEID (cold)", TYPE_ESTEID },
|
||||
{ "3B:6E:00:FF:45:73:74:45:49:44:20:76:65:72:20:31:2E:30", NULL, "EstEID (warm)", TYPE_ESTEID },
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
|
|
|
@ -28,9 +28,9 @@
|
|||
|
||||
static struct sc_atr_table miocos_atrs[] = {
|
||||
/* Test card with 32 kB memory */
|
||||
{ "3B:9D:94:40:23:00:68:10:11:4D:69:6F:43:4F:53:00:90:00", NULL, TYPE_PKI },
|
||||
{ "3B:9D:94:40:23:00:68:10:11:4D:69:6F:43:4F:53:00:90:00", NULL, NULL, TYPE_PKI },
|
||||
/* Test card with 64 kB memory */
|
||||
{ "3B:9D:94:40:23:00:68:20:01:4D:69:6F:43:4F:53:00:90:00", NULL, TYPE_PKI },
|
||||
{ "3B:9D:94:40:23:00:68:20:01:4D:69:6F:43:4F:53:00:90:00", NULL, NULL, TYPE_PKI },
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
|
|
|
@ -43,13 +43,13 @@
|
|||
|
||||
static struct sc_atr_table oberthur_atrs[] = {
|
||||
#if 0
|
||||
{ "3B:7F:18:00:00:00:31:C0:73:9E:01:0B:64:52:D9:04:00:82:90:00", "Oberthur 32k", ATR_OBERTHUR_32K },
|
||||
{ "3B:7F:18:00:00:00:31:C0:73:9E:01:0B:64:52:D9:05:00:82:90:00", "Oberthur 32k BIO", ATR_OBERTHUR_32K_BIO },
|
||||
{ "3B:7F:18:00:00:00:31:C0:73:9E:01:0B:64:52:D9:04:00:82:90:00", NULL, "Oberthur 32k", ATR_OBERTHUR_32K },
|
||||
{ "3B:7F:18:00:00:00:31:C0:73:9E:01:0B:64:52:D9:05:00:82:90:00", NULL, "Oberthur 32k BIO", ATR_OBERTHUR_32K_BIO },
|
||||
#endif
|
||||
{ "3B:7D:18:00:00:00:31:80:71:8E:64:77:E3:01:00:82:90:00", "Oberthur 64k v4/2.1.1", ATR_OBERTHUR_64K },
|
||||
{ "3B:7D:18:00:00:00:31:80:71:8E:64:77:E3:02:00:82:90:00", "Oberthur 64k v4/2.1.1", ATR_OBERTHUR_64K },
|
||||
{ "3B:7D:11:00:00:00:31:80:71:8E:64:77:E3:01:00:82:90:00", "Oberthur 64k v5", ATR_OBERTHUR_64K },
|
||||
{ "3B:7D:11:00:00:00:31:80:71:8E:64:77:E3:02:00:82:90:00", "Oberthur 64k v5/2.2.0", ATR_OBERTHUR_64K },
|
||||
{ "3B:7D:18:00:00:00:31:80:71:8E:64:77:E3:01:00:82:90:00", NULL, "Oberthur 64k v4/2.1.1", ATR_OBERTHUR_64K },
|
||||
{ "3B:7D:18:00:00:00:31:80:71:8E:64:77:E3:02:00:82:90:00", NULL, "Oberthur 64k v4/2.1.1", ATR_OBERTHUR_64K },
|
||||
{ "3B:7D:11:00:00:00:31:80:71:8E:64:77:E3:01:00:82:90:00", NULL, "Oberthur 64k v5", ATR_OBERTHUR_64K },
|
||||
{ "3B:7D:11:00:00:00:31:80:71:8E:64:77:E3:02:00:82:90:00", NULL, "Oberthur 64k v5/2.2.0", ATR_OBERTHUR_64K },
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
#include <ctype.h>
|
||||
|
||||
static struct sc_atr_table pgp_atrs[] = {
|
||||
{ "3b:fa:13:00:ff:81:31:80:45:00:31:c1:73:c0:01:00:00:90:00:b1" },
|
||||
{ "3b:fa:13:00:ff:81:31:80:45:00:31:c1:73:c0:01:00:00:90:00:b1", NULL },
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
|
|
|
@ -25,8 +25,8 @@
|
|||
#include <string.h>
|
||||
|
||||
static struct sc_atr_table starcos_atrs[] = {
|
||||
{ "3B:B7:94:00:c0:24:31:fe:65:53:50:4b:32:33:90:00:b4" },
|
||||
{ "3B:B7:94:00:81:31:fe:65:53:50:4b:32:33:90:00:d1" },
|
||||
{ "3B:B7:94:00:c0:24:31:fe:65:53:50:4b:32:33:90:00:b4", NULL },
|
||||
{ "3B:B7:94:00:81:31:fe:65:53:50:4b:32:33:90:00:d1", NULL },
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
|
|
|
@ -29,11 +29,11 @@
|
|||
|
||||
static struct sc_atr_table tcos_atrs[] = {
|
||||
/* SLE44 */
|
||||
{ "3B:BA:13:00:81:31:86:5D:00:64:05:0A:02:01:31:80:90:00:8B" },
|
||||
{ "3B:BA:13:00:81:31:86:5D:00:64:05:0A:02:01:31:80:90:00:8B", NULL },
|
||||
/* SLE66S */
|
||||
{ "3B:BA:14:00:81:31:86:5D:00:64:05:14:02:02:31:80:90:00:91" },
|
||||
{ "3B:BA:14:00:81:31:86:5D:00:64:05:14:02:02:31:80:90:00:91", NULL },
|
||||
/* SLE66P */
|
||||
{ "3B:BA:96:00:81:31:86:5D:00:64:05:60:02:03:31:80:90:00:66" },
|
||||
{ "3B:BA:96:00:81:31:86:5D:00:64:05:60:02:03:31:80:90:00:66", NULL },
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
|
|
|
@ -40,6 +40,7 @@ extern "C" {
|
|||
|
||||
struct sc_atr_table {
|
||||
const char *atr;
|
||||
const char *atrmask;
|
||||
const char *name;
|
||||
int id;
|
||||
unsigned long flags;
|
||||
|
|
Loading…
Reference in New Issue