Злобно-программистское

А я ещё удивляюсь, чего это у меня из SIM-карты ATR читается только один раз, а потом таймаутится, пока карту не передёрнешь.

/*
 * Reset - nothing to be done?
 * We should do something to make it come back with all state zapped
 */
static int starkey_card_reset(ifd_reader_t * reader, int slot, void *atr,
                              size_t size)
{
        ifd_device_t *dev = reader->device;
        unsigned char buffer[32];
        int rc, atrlen;
        ifd_usb_capture_t *cap;

        rc = ifd_usb_begin_capture(dev,
                                   IFD_USB_URB_TYPE_INTERRUPT, 0x81,
                                   sizeof(buffer), &cap);
        if (rc < 0)
                return rc;

        rc = ifd_usb_capture(dev, cap, buffer, sizeof(buffer), STARKEY_TIMEOUT);

        if (rc <= 0) {
                ct_error("starkey: failed to activate token");
                return -1;
        }

        memcpy(atr, buffer, rc);
        atrlen = rc;
        return atrlen;
}
This entry was posted in Uncategorized and tagged . Bookmark the permalink.

Leave a Reply