cardem: choose a more reasonable default ATR

PCSCd does not like invalid ATRs

Change-Id: I1eebfdc06be55931c2e80e2b515ac3a559737c38
This commit is contained in:
Eric Wild
2020-04-03 21:21:27 +02:00
parent e0f4d9216e
commit ccceb0ffba
2 changed files with 38 additions and 4 deletions

View File

@@ -1297,8 +1297,24 @@ void card_emu_wt_expired(void *handle)
}
}
/* shortest ATR possible (uses default speed and no options) */
static const uint8_t default_atr[] = { 0x3B, 0x00 };
/* reasonable ATR offering all protocols and voltages
* smartphones might not care, but other readers do
TS = 0x3B Direct Convention
T0 = 0x80 Y(1): b1000, K: 0 (historical bytes)
TD(1) = 0x80 Y(i+1) = b1000, Protocol T=0
----
TD(2) = 0x81 Y(i+1) = b1000, Protocol T=1
----
TD(3) = 0x1F Y(i+1) = b0001, Protocol T=15
----
TA(4) = 0xC7 Clock stop: no preference - Class accepted by the card: (3G) A 5V B 3V C 1.8V
----
Historical bytes
TCK = 0x59 correct checksum
* */
static const uint8_t default_atr[] = { 0x3B, 0x80, 0x80, 0x81 , 0x1F, 0xC7, 0x59};
static struct card_handle card_handles[NUM_SLOTS];