From 8529b7ba3e07ec848a04d51d9783e48d8411c0c9 Mon Sep 17 00:00:00 2001 From: jps Date: Thu, 2 Jul 2009 13:59:38 +0000 Subject: [PATCH] Add support for JCOP31 v2.4.1 with the modified muscle applet[1]. This add support for 2048bit key and extended APDU. [1] http://www.opensc-project.org/pipermail/opensc-user/2009-June/003147.html git-svn-id: https://www.opensc-project.org/svnp/opensc/trunk@3708 c6295689-39f2-0310-b995-f0e70906c6a9 --- src/libopensc/card-muscle.c | 9 +++++++++ src/libopensc/cards.h | 1 + 2 files changed, 10 insertions(+) diff --git a/src/libopensc/card-muscle.c b/src/libopensc/card-muscle.c index c5babf5f..c7dc1231 100644 --- a/src/libopensc/card-muscle.c +++ b/src/libopensc/card-muscle.c @@ -39,6 +39,10 @@ static struct sc_card_driver muscle_drv = { static struct sc_atr_table muscle_atrs[] = { /* Aladdin eToken PRO USB 72K Java */ { "3b:d5:18:00:81:31:3a:7d:80:73:c8:21:10:30", NULL, NULL, SC_CARD_TYPE_MUSCLE_ETOKEN_72K, 0, NULL }, + /* JCOP31 v2.4.1 contact interface */ + { "3b:f8:13:00:00:81:31:fe:45:4a:43:4f:50:76:32:34:31:b7", NULL, NULL, SC_CARD_TYPE_MUSCLE_JCOP241, 0, NULL }, + /* JCOP31 v2.4.1 RF interface */ + { "3b:88:80:01:4a:43:4f:50:76:32:34:31:5e", NULL, NULL, SC_CARD_TYPE_MUSCLE_JCOP241, 0, NULL }, { NULL, NULL, NULL, 0, 0, NULL } }; @@ -478,6 +482,11 @@ static int muscle_init(sc_card_t *card) card->caps |= SC_CARD_CAP_RSA_2048; card->caps |= SC_CARD_CAP_APDU_EXT; } + if(card->type == SC_CARD_TYPE_MUSCLE_JCOP241) { + card->caps |= SC_CARD_CAP_RSA_2048; + card->caps |= SC_CARD_CAP_APDU_EXT; + } + /* FIXME: Card type detection */ if (1) { diff --git a/src/libopensc/cards.h b/src/libopensc/cards.h index 120cfee8..044a19fb 100644 --- a/src/libopensc/cards.h +++ b/src/libopensc/cards.h @@ -127,6 +127,7 @@ enum { SC_CARD_TYPE_MUSCLE_BASE = 15000, SC_CARD_TYPE_MUSCLE_GENERIC, SC_CARD_TYPE_MUSCLE_ETOKEN_72K, + SC_CARD_TYPE_MUSCLE_JCOP241, /* ACOS5 driver */ SC_CARD_TYPE_ACOS5_BASE = 16000,