Here is an example ATR for the new RSA SecurID 800: 3b 0f 80 22 15 e1 5a 00 20 00 29 21 02 31 20 02 00
T0 = 0x0f, meaning that there are 15 historical bytes and zero TDX bytes. However, the check in ifd_atr_parse does the following: if (len <= 2 + (atr[1] & 0x0f)) return IFD_ERROR_INVALID_ATR; I think it should allow len == 2 + (atr[1] & 0x0f) and be changed to if (len < 2 + (atr[1] & 0x0f)) return IFD_ERROR_INVALID_ATR; http://www.opensc-project.org/openct/browser/trunk/src/ifd/atr.c#L26 Thank you. _______________________________________________ opensc-devel mailing list opensc-devel@lists.opensc-project.org http://www.opensc-project.org/mailman/listinfo/opensc-devel