Add support for Gemalto IDPrime OS version 3 (padded pin to 16 bytes with zeroes)
Fixes #2202
This commit is contained in:
parent
26adaf519c
commit
a6ed34bbb5
@ -252,6 +252,10 @@ static int idprime_init(sc_card_t *card)
|
|||||||
card->type = SC_CARD_TYPE_IDPRIME_V2;
|
card->type = SC_CARD_TYPE_IDPRIME_V2;
|
||||||
sc_log(card->ctx, "Detected IDPrime applet version 2");
|
sc_log(card->ctx, "Detected IDPrime applet version 2");
|
||||||
break;
|
break;
|
||||||
|
case 0x03:
|
||||||
|
card->type = SC_CARD_TYPE_IDPRIME_V3;
|
||||||
|
sc_log(card->ctx, "Detected IDPrime applet version 3");
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
sc_log(card->ctx, "Unknown OS version received: %d", rbuf[11]);
|
sc_log(card->ctx, "Unknown OS version received: %d", rbuf[11]);
|
||||||
break;
|
break;
|
||||||
|
@ -266,6 +266,7 @@ enum {
|
|||||||
SC_CARD_TYPE_IDPRIME_BASE = 37000,
|
SC_CARD_TYPE_IDPRIME_BASE = 37000,
|
||||||
SC_CARD_TYPE_IDPRIME_V1,
|
SC_CARD_TYPE_IDPRIME_V1,
|
||||||
SC_CARD_TYPE_IDPRIME_V2,
|
SC_CARD_TYPE_IDPRIME_V2,
|
||||||
|
SC_CARD_TYPE_IDPRIME_V3,
|
||||||
SC_CARD_TYPE_IDPRIME_GENERIC,
|
SC_CARD_TYPE_IDPRIME_GENERIC,
|
||||||
|
|
||||||
/* eDO cards */
|
/* eDO cards */
|
||||||
|
@ -98,6 +98,12 @@ static int sc_pkcs15emu_idprime_init(sc_pkcs15_card_t *p15card)
|
|||||||
pin_info.attrs.pin.max_length = 16;
|
pin_info.attrs.pin.max_length = 16;
|
||||||
pin_info.tries_left = -1;
|
pin_info.tries_left = -1;
|
||||||
|
|
||||||
|
if (card->type == SC_CARD_TYPE_IDPRIME_V3) {
|
||||||
|
pin_info.attrs.pin.flags |= SC_PKCS15_PIN_FLAG_NEEDS_PADDING;
|
||||||
|
pin_info.attrs.pin.stored_length = 16;
|
||||||
|
pin_info.attrs.pin.pad_char = 0x00;
|
||||||
|
}
|
||||||
|
|
||||||
sc_log(card->ctx, "IDPrime Adding pin with label=%s", pin_label);
|
sc_log(card->ctx, "IDPrime Adding pin with label=%s", pin_label);
|
||||||
strncpy(pin_obj.label, pin_label, SC_PKCS15_MAX_LABEL_SIZE - 1);
|
strncpy(pin_obj.label, pin_label, SC_PKCS15_MAX_LABEL_SIZE - 1);
|
||||||
pin_obj.flags = SC_PKCS15_CO_FLAG_PRIVATE;
|
pin_obj.flags = SC_PKCS15_CO_FLAG_PRIVATE;
|
||||||
|
Loading…
Reference in New Issue
Block a user