Enter an ATR (Answer To Reset) and I will parse it for you.
Parsing ATR:
TS = 0x3B | Direct Convention |
---|---|
T0 = 0xDE | Y(1): b1101, K: 14 (historical bytes) |
TA(1) = 0x18 | Fi=372, Di=12, 31 cycles/ETU (129032 bits/s at 4.00 MHz, 161290 bits/s for fMax=5 MHz) |
TC(1) = 0xFF | Extra guard time: 255 (special value) |
TD(1) = 0x81 | Y(i+1) = b1000, Protocol T=1 |
---- | |
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 31 81 54 48 53 4D 31 73 80 21 40 81 07 |
Category indicator byte: 0x80 | (compact TLV data object) Tag: 3, Len: 1 (card service data byte) Card service data byte: 129 - Application selection: by full DF name - EF.DIR and EF.ATR access services: by GET RECORD(s) command - Card without MF Tag: 5, Len: 4 (card issuer's data) Card issuer data: 48 53 4D 31 "HSM1" Tag: 7, Len: 3 (card capabilities) Selection methods: 128 - 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: 64 - Extended Lc and Le fields - Logical channel number assignment: No logical channel - Maximum number of logical channels: 1 Tag: 8, Len: 1 (status indicator) LCS (life card cycle): 7 |
TCK = 0x1C | correct checksum |
Possibly identified card:
3B DE 18 FF 81 91 FE 1F C3 80 31 81 54 48 53 4D 31 73 80 21 40 81 07 1C
SmartCard-HSM 4K USB-Token (JavaCard)
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.