Parent Directory
|
Revision Log
| Links to HEAD: | (view) (download) (annotate) |
| Sticky Revision: |
use reader_index instead of lun as reader identification
initialise ccid.defaultFeatures field
initialise bMaxSlotIndex and ccid.bCurrentSlotIndex fields
OpenUSBByName(): use base 0 instead of 16 in strtoul() so that you can express the decimal value 15 as: 15 (decimal), 0xF (hex) or 017 (octal). It is not really needed since the reader descriptions in Info.plist are all in hex.
rename PCSCLITE_MAX_READERS in CCID_DRIVER_MAX_READERS This value is not defined by pcsc-lite but is internal to the CCID driver. By default pcsc-lite supports the same number of readers (16).
mark potentially null values as /*@null@*/ for splint
mark unused arguments as /*@unused@*/ for splint
include <sys/types.h> so splint can parse the file
lun is (unsigned int) so reader = LunToReaderIndex(lun) is also (unsigned int)
lun is (unsigned int) instead of (int) Avoid a warning by splint in #define LunToReaderIndex(Lun) (Lun>>16) Left operand of >> may be negative (int): lun >> 16
add support for SCardGetAttrib(.., IOCTL_SMARTCARD_VENDOR_VERIFY_PIN, ..) to know if the reader supports SCardControl(.., IOCTL_SMARTCARD_VENDOR_VERIFY_PIN, ..)
set length to 0 when a usb_bulk_read() error is returned
recompile using gcc -pedantic and correct: - some C++ syntax comments - many signedness "problems"
do not export get_end_points() declaration and make the function static
add support for the libusb naming scheme: usb:%04x/%04x:libusb:%s
add { } to avoid ambiguities now that DEBUG_* are "if (x) y" constructions
define ALLOW_PROPRIETARY_CLASS by default Proprietary USB Class (0xFF) are (or are not) accepted A proprietary class is used for devices released before the final CCID specifications were ready. We should not have problems with non CCID devices becasue the Manufacturer and Product ID are also used to identify the device */
allow proprietary CCID Class byte but only if ALLOW_PROPRIETARY_CLASS is defined. You should know what you do. Only useful for pre-CCID devices.
fill dwDefaultClock and dwMaxDataRate according to the reader descriptor
first bSeq is 0 (even if 1 works ok)
usb_reset() the device before usb_close()
add dwMaxIFSD field
- remove device_name[] from struct _usbDevice - use naming scheme usb:vendor/product - simplify (a bit) the code
use DEBUG_CRITICAL2() instead of DEBUG_CRITICAL()
add support of USB devices with multiple interfaces (like the Silitek SK-3105 keyboard)
add support of IFDHCreateChannelByName
call ccid_open_hack() in IFDHCreateChannel() instead of in each OpenPort()
remove function name from debug message since __FUNCTION__ is now used in DEBUG_* macro definition
the USB extra field length shall be exactly 54 bytes to be CCID.
add a test on the USB extra field length to avoid a crash and print an error message. This occurs when the reader is _not_ CCID and the CCID driver is used (wrong Info.plist for example).
read and write timeouts are not symmetric. write timout can be shorter since the reader and card is not supposed to do anything before receiving (write) a command.
correctly use the device name in a debug message instead of a not yet initialised field.
redesign to separate communication media and CCID protocol. call ccid_open_hack() upon open to do some reader dependent magic.
do not duplicate the Info.plist filename but "calculate" it once
use a 1 minute USB timeout instead of the 1 second used for debug
Initial revision
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.
| ViewVC Help | |
| Powered by ViewVC 1.1.5 |