Adds Gemalto IDPrime v4
This commit is contained in:
parent
35a8a1d7e1
commit
072c64aaed
|
@ -206,9 +206,13 @@ static int idprime_process_index(sc_card_t *card, idprime_private_data_t *priv,
|
|||
if (card->type == SC_CARD_TYPE_IDPRIME_V2) {
|
||||
/* The key reference starts from 0x11 and increments by the key id (ASCII) */
|
||||
new_object.key_reference = 0x11 + key_id;
|
||||
} else { /* V3 */
|
||||
/* The key reference starts from 0xF7 and increments by the key id (ASCII) */
|
||||
new_object.key_reference = 0xF7 + key_id;
|
||||
} else {
|
||||
if (card->type == SC_CARD_TYPE_IDPRIME_V3) { /* V3 */
|
||||
/* The key reference starts from 0xF7 and increments by the key id (ASCII) */
|
||||
new_object.key_reference = 0xF7 + key_id;
|
||||
} else { /* V4 */
|
||||
new_object.key_reference = 0x56 + key_id;
|
||||
}
|
||||
}
|
||||
}
|
||||
sc_debug(card->ctx, SC_LOG_DEBUG_VERBOSE, "Found certificate with fd=%d, key_ref=%d",
|
||||
|
@ -261,6 +265,10 @@ static int idprime_init(sc_card_t *card)
|
|||
card->type = SC_CARD_TYPE_IDPRIME_V3;
|
||||
sc_log(card->ctx, "Detected IDPrime applet version 3");
|
||||
break;
|
||||
case 0x04:
|
||||
card->type = SC_CARD_TYPE_IDPRIME_V4;
|
||||
sc_log(card->ctx, "Detected IDPrime applet version 4");
|
||||
break;
|
||||
default:
|
||||
sc_log(card->ctx, "Unknown OS version received: %d", rbuf[11]);
|
||||
break;
|
||||
|
|
|
@ -269,6 +269,7 @@ enum {
|
|||
SC_CARD_TYPE_IDPRIME_V1,
|
||||
SC_CARD_TYPE_IDPRIME_V2,
|
||||
SC_CARD_TYPE_IDPRIME_V3,
|
||||
SC_CARD_TYPE_IDPRIME_V4,
|
||||
SC_CARD_TYPE_IDPRIME_GENERIC,
|
||||
|
||||
/* eDO cards */
|
||||
|
|
|
@ -98,7 +98,8 @@ static int sc_pkcs15emu_idprime_init(sc_pkcs15_card_t *p15card)
|
|||
pin_info.attrs.pin.max_length = 16;
|
||||
pin_info.tries_left = -1;
|
||||
|
||||
if (card->type == SC_CARD_TYPE_IDPRIME_V3) {
|
||||
if (card->type == SC_CARD_TYPE_IDPRIME_V3 ||
|
||||
card->type == SC_CARD_TYPE_IDPRIME_V4) {
|
||||
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;
|
||||
|
|
Loading…
Reference in New Issue