Parsing an ATR
If you have an ATR and would like to transfrom it in a human readable format you can use an online application I developped (using Google App Engine): http://smartcard-atr.appspot.com/
The output will look like this:
Parsing ATR: 3B FA 13 00 FF 81 31 80 45 00 31 C1 73 C0 01 00 00 90 00 B1
TS = 0x3B | Direct Convention |
---|---|
T0 = 0xFA | Y(1): b1111, K: 10 (historical bytes) |
TA(1) = 0x13 | Fi=372, Di=4, 93 cycles/ETU (43010 bits/s at 4.00 MHz, 53763 bits/s for fMax=5 MHz) |
TB(1) = 0x00 | VPP is not electrically connected |
TC(1) = 0xFF | Extra guard time: 255 (special value) |
TD(1) = 0x81 | Y(i+1) = b1000, Protocol T=1 |
---- | |
TD(2) = 0x31 | Y(i+1) = b0011, Protocol T=1 |
---- | |
TA(3) = 0x80 | IFSC: 128 |
TB(3) = 0x45 | Block Waiting Integer: 4 - Character Waiting Integer: 5 |
---- | |
Historical bytes | 00 31 C1 73 C0 01 00 00 90 00 |
Category indicator byte: 0x00 |
(compact TLV data object) Tag: 3, Len: 1 (card service data byte) Card service data byte: 193 - Application selection: by full DF name - Application selection: by partial DF name - EF.DIR and EF.ATR access services: by GET RECORD(s) command - Card without MF Tag: 7, Len: 3 (card capabilities) Selection methods: 192 - DF selection by partial DF name - DF selection by full DF name Data coding byte: 1 - Behaviour of write functions: one-time write - Value 'FF' for the first byte of BER-TLV tag fields: valid - Data unit in quartets: 1 Command chaining, length fields and logical channels: 0 - Logical channel number assignment: No logical channel - Maximum number of logical channels: 0 Mandatory status indicator (3 last bytes) LCS (life card cycle): 0 (No information given) SW: 9000 () |
TCK = 0xB1 | (correct checksum) |
Possibly identified card: OpenPGP