Enter an ATR (Answer To Reset) and I will parse it for you.
Parsing ATR:
TS = 0x3B | Direct Convention |
---|---|
T0 = 0x9F | Y(1): b1001, K: 15 (historical bytes) |
TA(1) = 0x96 | Fi=512, Di=32, 16 cycles/ETU (250000 bits/s at 4.00 MHz, 312500 bits/s for fMax=5 MHz) |
TD(1) = 0x80 | Y(i+1) = b1000, Protocol T=0 |
---- | |
TD(2) = 0x1F | Y(i+1) = b0001, Protocol T=15 |
---- | |
TA(3) = 0xC6 | Clock stop: no preference - Class accepted by the card: (3G) B 3V C 1.8V |
---- | |
Historical bytes | 80 31 E0 73 F6 21 13 67 56 02 22 00 80 01 01 |
Category indicator byte: 0x80 | (compact TLV data object) Tag: 3, Len: 1 (card service data byte) Card service data byte: 224 - Application selection: by full DF name - Application selection: by partial DF name - BER-TLV data objects available in EF.DIR - EF.DIR and EF.ATR access services: by GET RECORD(s) command - Card with MF Tag: 7, Len: 3 (card capabilities) Selection methods: 246 - Record number supported - Short EF identifier supported - DF selection by file identifier - DF selection by path - 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 Tag: 6, Len: 7 (pre-issuing data) Data: 56 02 22 00 80 01 01 "V."...." |
TCK = 0x27 | correct checksum |
Possibly identified card:
3B 9F 96 80 1F C6 80 31 E0 73 F6 21 13 67 56 02 22 00 80 01 01 27
giffgaff USIM (Telecommunication)
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.