Detect the eToken 72K and activate RSA 2048 and extended APDU for it.

Thanks to Joao Poupino for the patch
http://www.opensc-project.org/pipermail/opensc-devel/2009-March/011978.html


git-svn-id: https://www.opensc-project.org/svnp/opensc/trunk@3671 c6295689-39f2-0310-b995-f0e70906c6a9
This commit is contained in:
ludovic.rousseau 2009-03-25 13:55:25 +00:00
parent e0f3545157
commit 04a5c99f77
2 changed files with 15 additions and 0 deletions

View File

@ -36,6 +36,12 @@ static struct sc_card_driver muscle_drv = {
NULL, 0, NULL
};
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 },
{ NULL, NULL, NULL, 0, 0, NULL }
};
#define MUSCLE_DATA(card) ( (muscle_private_t*)card->drv_data )
#define MUSCLE_FS(card) ( ((muscle_private_t*)card->drv_data)->fs )
typedef struct muscle_private {
@ -465,6 +471,14 @@ static int muscle_init(sc_card_t *card)
card->flags |= SC_CARD_FLAG_ONBOARD_KEY_GEN;
card->flags |= SC_CARD_FLAG_RNG;
card->caps |= SC_CARD_CAP_RNG;
/* Card type detection */
_sc_match_atr(card, muscle_atrs, &card->type);
if(card->type == SC_CARD_TYPE_MUSCLE_ETOKEN_72K) {
card->caps |= SC_CARD_CAP_RSA_2048;
card->caps |= SC_CARD_CAP_APDU_EXT;
}
/* FIXME: Card type detection */
if (1) {
unsigned long flags;

View File

@ -126,6 +126,7 @@ enum {
/* Muscle cards */
SC_CARD_TYPE_MUSCLE_BASE = 15000,
SC_CARD_TYPE_MUSCLE_GENERIC,
SC_CARD_TYPE_MUSCLE_ETOKEN_72K,
/* ACOS5 driver */
SC_CARD_TYPE_ACOS5_BASE = 16000,