Enter an ATR (Answer To Reset) and I will parse it for you.
Parsing ATR:
TS = 0x3B | Direct Convention |
---|---|
T0 = 0xDF | Y(1): b1101, K: 15 (historical bytes) |
TA(1) = 0x95 | Fi=512, Di=16, 32 cycles/ETU (125000 bits/s at 4.00 MHz, 156250 bits/s for fMax=5 MHz) |
TC(1) = 0xFF | Extra guard time: 255 (special value) |
TD(1) = 0x80 | Y(i+1) = b1000, Protocol T=0 |
---- | |
TD(2) = 0x91 | Y(i+1) = b1001, Protocol T=1 |
---- | |
TA(3) = 0xFE | IFSC: 254 |
TD(3) = 0x1F | Y(i+1) = b0001, Protocol T=15 |
---- | |
TA(4) = 0xC3 | Clock stop: no preference - Class accepted by the card: (3G) A 5V B 3V |
---- | |
Historical bytes | 80 25 A0 00 00 00 68 53 19 00 01 73 C8 21 13 |
Category indicator byte: 0x80 | (compact TLV data object) Tag: 2, Len: 5 (issuer identification number, ISO 7812-1) Issuer identification number: A0 00 00 00 68 Tag: 5, Len: 3 (card issuer's data) Card issuer data: 19 00 01 "..." Tag: 7, Len: 3 (card capabilities) Selection methods: 200 - Implicit DF selection - DF selection by partial DF name - DF selection by full DF name Data coding byte: 33 - Behaviour of write functions: proprietary - Value 'FF' for the first byte of BER-TLV tag fields: invalid - Data unit in quartets: 1 Command chaining, length fields and logical channels: 19 - Logical channel number assignment: by the card - Maximum number of logical channels: 4 |
TCK = 0x29 | correct checksum |
Possibly identified card:
3B DF 95 FF 80 91 FE 1F C3 80 25 A0 00 00 00 68 53 19 00 01 73 C8 21 13 29
CardLogix Credensys-J Contacted Java Card 2.2.1 Global Platform 2.1.1 (Atmel AT90SC12872RCFT)
(bank)
The parsing code is part of pyscard and is available at parseATR.py.
The list of known ATR is also available online at smartcard_list.txt.
My blog contains a serie of artickes about ATR bytes.