/[pcsclite]/trunk/Drivers/ccid/src
ViewVC logotype

Log of /trunk/Drivers/ccid/src

View Directory Listing Directory Listing


Sticky Revision:

Revision 2392 - Directory Listing
Modified Sat Feb 10 19:43:13 2007 UTC (6 years, 4 months ago) by rousseau
get_end_points(): use usb_interface->altsetting->bNumEndpoints instead
of the hardcoded value 3

Revision 2391 - Directory Listing
Modified Thu Feb 8 14:47:52 2007 UTC (6 years, 4 months ago) by rousseau
use ATTRS{} instead of SYSFS{} for use with recent udev versions

Revision 2390 - Directory Listing
Modified Thu Feb 8 14:18:56 2007 UTC (6 years, 4 months ago) by rousseau
parse bInterfaceProtocol field

Revision 2389 - Directory Listing
Modified Thu Feb 8 14:13:47 2007 UTC (6 years, 4 months ago) by rousseau
parse bNumEndpoints field

Revision 2366 - Directory Listing
Modified Tue Jan 30 15:46:07 2007 UTC (6 years, 4 months ago) by rousseau
ccid_open_hack(): add the l10n of the 10th string "PIN blocked"

Revision 2365 - Directory Listing
Modified Tue Jan 30 15:01:50 2007 UTC (6 years, 4 months ago) by rousseau
ccid_open_hack(): add portugese strings for the GemPC Pinpad.

Thanks to Stef Hoeben

Revision 2361 - Directory Listing
Modified Sat Jan 27 16:36:55 2007 UTC (6 years, 4 months ago) by rousseau
add non CCID generic (InterfaceClass: 0xFF) readers

Revision 2359 - Directory Listing
Modified Sat Jan 27 13:31:33 2007 UTC (6 years, 4 months ago) by rousseau
Bogus_firmwares[]: the driver now contains patches to circumvent the
Oz776 reader. It is then declared bogus only if O2MICRO_OZ776_PATCH is
not defined

Revision 2358 - Directory Listing
Modified Sat Jan 27 13:28:26 2007 UTC (6 years, 4 months ago) by rousseau
T0ProcACK(): use a hack to circumvent the Oz776 firmware bug with
commands of size modulo 64

Revision 2357 - Directory Listing
Modified Fri Jan 26 16:57:45 2007 UTC (6 years, 4 months ago) by rousseau
CmdGetSlotStatus(): the O2MICRO OZ 776 reader sends "card absent or
mute" errors when no card is inserted. We do not log this error since it
is normal execution and just fill the syslog files

Revision 2356 - Directory Listing
Modified Fri Jan 26 16:43:45 2007 UTC (6 years, 4 months ago) by rousseau
move #define O2MICRO_OZ776_PATCH from ccid_usb.c to ccid.h so we can use
it in other .c files

Revision 2329 - Directory Listing
Modified Wed Jan 10 21:01:39 2007 UTC (6 years, 5 months ago) by rousseau
do not install the pcscd_ccid.rules file but display a message telling
so. The exact location of this file is Linux distribution dependent.

Thanks to Alon Bar-Lev for the idea.

Revision 2328 - Directory Listing
Modified Wed Jan 10 20:53:44 2007 UTC (6 years, 5 months ago) by rousseau
typo: "busses" -> "buses"

Thanks to Martin Paljak for the patch

Revision 2326 - Directory Listing
Modified Wed Jan 10 15:50:51 2007 UTC (6 years, 5 months ago) by rousseau
add a missing \n in printf

Revision 2322 - Directory Listing
Modified Tue Jan 9 19:55:03 2007 UTC (6 years, 5 months ago) by rousseau
use 60-pcscd_ccid.rules instead of 50-pcscd_ccid.rules so udev default
> rules will run before are run before this one.

Thanks to Alon Bar-Lev.

Revision 2318 - Directory Listing
Modified Mon Jan 8 08:01:04 2007 UTC (6 years, 5 months ago) by rousseau
add pcscd_ccid.rules in EXTRA_DIST

Thanks to Kjell M. Myksvoll for the bug report

Revision 2315 - Directory Listing
Modified Sat Jan 6 21:53:22 2007 UTC (6 years, 5 months ago) by rousseau
if --enable-udev is used we define IFD_GENERATE_HOTPLUG in
ifdCapabilities and install the pcscd_ccid.rules for udev

Revision 2314 - Directory Listing
Modified Sat Jan 6 21:52:18 2007 UTC (6 years, 5 months ago) by rousseau
replace MAGIC_IFDCAPABILITIES by the 3rd command line argument

Revision 2313 - Directory Listing
Modified Sat Jan 6 21:51:32 2007 UTC (6 years, 5 months ago) by rousseau
use MAGIC_IFDCAPABILITIES

Revision 2311 - Directory Listing
Modified Sat Jan 6 21:39:39 2007 UTC (6 years, 5 months ago) by rousseau
udev file for hotplug capability

Revision 2296 - Directory Listing
Modified Tue Jan 2 19:55:40 2007 UTC (6 years, 5 months ago) by rousseau
CloseUSB(): free .dirname and .filename only for the last slot

Revision 2295 - Directory Listing
Modified Tue Jan 2 17:01:15 2007 UTC (6 years, 5 months ago) by rousseau
OpenUSBByName(): move the "Checking device: " log message out of the
usbDevice[] loop since we display info of the new device and not of
a device from usbDevice[]

Revision 2294 - Directory Listing
Modified Tue Jan 2 16:55:33 2007 UTC (6 years, 5 months ago) by rousseau
struct _usbDevice: replace struct usb_device *dev; by char *dirname; and
char *filename; since the libusb structure can be modified at any time
by libusb (this structure is reused for another USB device when the USB
device is removed)

Revision 2293 - Directory Listing
Modified Tue Jan 2 16:46:58 2007 UTC (6 years, 5 months ago) by rousseau
get_data_rates() now has a struct usb_device *dev parameter to avoid
storing it in struct _usbDevice

Revision 2292 - Directory Listing
Modified Tue Jan 2 16:25:03 2007 UTC (6 years, 5 months ago) by rousseau
remove unused get_desc() function

Revision 2291 - Directory Listing
Modified Tue Jan 2 16:23:04 2007 UTC (6 years, 5 months ago) by rousseau
revert revisions 2289 and 2290

It is not the correct solution to the problem

Revision 2290 - Directory Listing
Modified Tue Jan 2 14:28:08 2007 UTC (6 years, 5 months ago) by rousseau
WriteUSB()/ReadUSB(): check that the device entry is still valid before
using it

Revision 2289 - Directory Listing
Modified Tue Jan 2 14:25:30 2007 UTC (6 years, 5 months ago) by rousseau
WriteUSB()/ReadUSB(): call CloseUSB() as soon as the device disapears
(ENODEV) since the libusb structures pointed by usbDevice[] may be
reused by another USB device

Revision 2285 - Directory Listing
Modified Mon Dec 25 22:33:58 2006 UTC (6 years, 5 months ago) by rousseau
many commands: make sure we received at least STATUS_OFFSET+1 bytes
before reading the value of buffer[STATUS_OFFSET]

usb_bulk_read() may return 0 bytes instead of an error when the reader
is just disconnected

Revision 2280 - Directory Listing
Modified Mon Dec 25 20:54:20 2006 UTC (6 years, 5 months ago) by rousseau
GetNewReaderIndex(): check that Lun is NOT already used

Thanks to Martin Preuss for the idea

Revision 2260 - Directory Listing
Modified Sat Dec 2 17:20:29 2006 UTC (6 years, 6 months ago) by rousseau
#include "checksum.h"

Revision 2258 - Directory Listing
Modified Sat Dec 2 17:13:06 2006 UTC (6 years, 6 months ago) by rousseau
warning: initialization discards qualifiers from pointer target type

Revision 2257 - Directory Listing
Modified Sat Dec 2 17:12:22 2006 UTC (6 years, 6 months ago) by rousseau
warning: initialization discards qualifiers from pointer target type

Revision 2256 - Directory Listing
Modified Sat Dec 2 17:09:03 2006 UTC (6 years, 6 months ago) by rousseau
remove unused argc and argv arguments

Revision 2255 - Directory Listing
Modified Sat Dec 2 17:08:01 2006 UTC (6 years, 6 months ago) by rousseau
ccid_error(): "char *file" argument -> "const char *file"

Revision 2254 - Directory Listing
Modified Sat Dec 2 17:03:26 2006 UTC (6 years, 6 months ago) by rousseau
warning: assignment discards qualifiers from pointer target type

Revision 2253 - Directory Listing
Modified Sat Dec 2 16:55:17 2006 UTC (6 years, 6 months ago) by rousseau
warning: redundant redeclaration of 'LogLevel'

Revision 2252 - Directory Listing
Modified Thu Nov 30 22:37:52 2006 UTC (6 years, 6 months ago) by rousseau
use $(srcdir)/convert_version.pl

Revision 2238 - Directory Listing
Modified Wed Nov 29 10:10:55 2006 UTC (6 years, 6 months ago) by rousseau
distribute convert_version.pl

Revision 2234 - Directory Listing
Modified Wed Nov 22 19:40:15 2006 UTC (6 years, 6 months ago) by rousseau
exit if the command is not run as root and getting iManufacturer fails

Revision 2223 - Directory Listing
Modified Fri Nov 17 20:19:17 2006 UTC (6 years, 7 months ago) by rousseau
set IFSC in the SetParameters argument for T=1 if TAi (i>2) is present: IFSC

Thanks to Stefan Neis for the bug report and patch

Revision 2208 - Directory Listing
Modified Wed Nov 15 14:35:21 2006 UTC (6 years, 7 months ago) by rousseau
IFDHICCPresence(): return the error code returned by CmdGetSlotStatus()
instead of using IFD_COMMUNICATION_ERROR

Revision 2207 - Directory Listing
Modified Wed Nov 15 14:33:41 2006 UTC (6 years, 7 months ago) by rousseau
CmdGetSlotStatus(), CCID_Transmit() and CCID_Receive(): return
IFD_NO_SUCH_DEVICE if the lower communication layer returns
STATUS_NO_SUCH_DEVICE

Revision 2206 - Directory Listing
Modified Wed Nov 15 14:31:38 2006 UTC (6 years, 7 months ago) by rousseau
WriteUSB() & ReadUSB(): return STATUS_NO_SUCH_DEVICE if read() or
write() fails with ENODEV

Revision 2205 - Directory Listing
Modified Wed Nov 15 14:28:20 2006 UTC (6 years, 7 months ago) by rousseau
add STATUS_NO_SUCH_DEVICE

Revision 2197 - Directory Listing
Modified Wed Nov 15 10:04:18 2006 UTC (6 years, 7 months ago) by rousseau
IFDHGetCapabilities(): add support of SCARD_ATTR_MAXINPUT to get the
maximal APDU size (dwMaxCCIDMessageLength -10)

Revision 2195 - Directory Listing
Modified Mon Nov 6 14:36:56 2006 UTC (6 years, 7 months ago) by rousseau
SecurePINVerify(): the GemPC Pinpad does not support
a bEntryValidationCondition different of 0x02 (validation key pressed)

Revision 2186 - Directory Listing
Modified Fri Oct 13 17:00:43 2006 UTC (6 years, 8 months ago) by rousseau
remove unneeded dependency on dl library

Revision 2176 - Directory Listing
Modified Tue Sep 26 13:32:05 2006 UTC (6 years, 8 months ago) by rousseau
IFDHICCPresence(): the patch in revision 2150 was not correct.
SCardReconnect(..., SCARD_UNPOWER_CARD, ...) failed since the
card was reported as non present after the power off

Revision 2175 - Directory Listing
Modified Tue Sep 26 13:29:57 2006 UTC (6 years, 8 months ago) by rousseau
IFDHPowerICC(): log the action performed (PowerUp, PowerDown, Reset)

Revision 2168 - Directory Listing
Modified Wed Sep 20 14:01:14 2006 UTC (6 years, 9 months ago) by rousseau
IFDHGetCapabilities(): add support of SCARD_ATTR_VENDOR_NAME

Revision 2166 - Directory Listing
Modified Wed Sep 20 13:40:19 2006 UTC (6 years, 9 months ago) by rousseau
add support for SCARD_ATTR_VENDOR_IFD_VERSION tag used by
SCardGetAttrib()

Revision 2165 - Directory Listing
Modified Wed Sep 20 13:39:23 2006 UTC (6 years, 9 months ago) by rousseau
Perl script to convert a version format from "1.2.3-svn-xyz" to "0x01020003"

Revision 2154 - Directory Listing
Modified Sun Sep 10 19:58:02 2006 UTC (6 years, 9 months ago) by rousseau
Bogus_firm[]: firmware 1.01 for Alcor AU9520 is bogus. The time request
of the card is not forwarded to the host by the reader.

Revision 2152 - Directory Listing
Modified Wed Sep 6 20:06:58 2006 UTC (6 years, 9 months ago) by rousseau
remove trailing spaces at end of lines

Revision 2150 - Directory Listing
Modified Wed Sep 6 13:49:40 2006 UTC (6 years, 9 months ago) by rousseau
IFDHICCPresence(): correctly support the removal and insertion between
two consecutive IFDHICCPresence() calls

Revision 2134 - Directory Listing
Modified Fri Aug 11 17:15:28 2006 UTC (6 years, 10 months ago) by rousseau
use ./configure --enable-twinserial to compile and install the the
driver for the GemPC Twin serial

Thanks to Wolfgang Glas for the idea

Revision 2130 - Directory Listing
Modified Wed Aug 9 07:17:31 2006 UTC (6 years, 10 months ago) by rousseau
IFDHCreateChannelByName(): add a "warm up" sequence. This sequence is
sometimes needed when pcscd is restarted with the reader already
connected. We get some "usb_bulk_read: Resource temporarily unavailable"
on the first few tries. It is an empirical hack

Revision 2123 - Directory Listing
Modified Mon Aug 7 10:05:40 2006 UTC (6 years, 10 months ago) by rousseau
CMD_BUF_SIZE should not include a byte for the cmd. This definition was
reused as-is from the ifd-gempc source code.

Thanks to Wolfgang Glas for the bug report

Revision 2122 - Directory Listing
Modified Thu Aug 3 13:14:27 2006 UTC (6 years, 10 months ago) by rousseau
IFDHICCPresence(): check the value returned by CmdEscape() in the
SCR331-DI contactless reader familly code.

Byg detected by using __attribute__((warn_unused_result)) also used as
__must_check by the Linux kernel

Revision 2121 - Directory Listing
Modified Thu Aug 3 13:12:20 2006 UTC (6 years, 10 months ago) by rousseau
change the prototype of ReleaseReaderIndex() to return void since he
function always returned 0 and the returned value was never checked

Revision 2120 - Directory Listing
Modified Thu Aug 3 10:04:01 2006 UTC (6 years, 10 months ago) by rousseau
SecurePINVerify()/SecurePINModify(): the USB timeout shall be greater
than the reader timeout so we get the reader answer. I use a margin of
10 seconds.

Thanks to Gerald Richter for the bug report

Revision 2119 - Directory Listing
Modified Tue Aug 1 20:05:22 2006 UTC (6 years, 10 months ago) by rousseau
ReadUSB(): check that usbDevice[reader_index].dev->bus is still non-NULL
(as we do in WriteUSB()) before dereferencing it in the debug message.

Thanks to Michael Wegner for the patch

Revision 2116 - Directory Listing
Modified Mon Jul 31 15:10:48 2006 UTC (6 years, 10 months ago) by rousseau
use ntohl/htonl from arpa/inet.h since the tag value for
IOCTL_FEATURE_VERIFY_PIN_DIRECT and IOCTL_FEATURE_MODIFY_PIN_DIRECT
_shall_ be encoded in big endian as documented in PCSC v2 part 10 ch 2.2
page 2.

The applications using this feature shall be updated (to respect the
PCSC specification)

Thanks to Ulrich Vogl for the bug report

Revision 2110 - Directory Listing
Modified Wed Jul 12 09:52:30 2006 UTC (6 years, 11 months ago) by rousseau
CCID_Receive(): check that we received at least enough bytes to test
cmd[STATUS_OFFSET].

usb_bulk_read() will return 0 bytes without error in case of timeout

Revision 2109 - Directory Listing
Modified Wed Jul 12 08:30:26 2006 UTC (6 years, 11 months ago) by rousseau
use LPSTR instead of LPTSTR (deprecated)

Revision 2108 - Directory Listing
Modified Wed Jul 12 08:21:07 2006 UTC (6 years, 11 months ago) by rousseau
SetParameters(): do not fail if the command fails to set a parameter
that is not changeable by the CCID

Revision 2107 - Directory Listing
Modified Tue Jul 11 18:35:25 2006 UTC (6 years, 11 months ago) by rousseau
correct a typo in a comment

Revision 2098 - Directory Listing
Modified Tue Jul 4 07:11:43 2006 UTC (6 years, 11 months ago) by rousseau
make pcscd detect a buffer overflow when the receiving buffer is too
small instead of silently ignoring the detected problem. This problem
only occured with readers supporting Extended APDU.

Revision 2097 - Directory Listing
Modified Tue Jul 4 07:06:10 2006 UTC (6 years, 11 months ago) by rousseau
ReadUSB(): be sure we have read enough bytes before checking for frame
detectation

Revision 2096 - Directory Listing
Modified Mon Jul 3 14:56:08 2006 UTC (6 years, 11 months ago) by rousseau
CmdXfrBlock(): remove the unused clean_up_and_return goto label

Revision 2095 - Directory Listing
Modified Mon Jul 3 14:54:59 2006 UTC (6 years, 11 months ago) by rousseau
CmdXfrBlock(): call CmdXfrBlockAPDU_extended() if the reader supports
Extended APDU

Revision 2094 - Directory Listing
Modified Mon Jul 3 14:21:15 2006 UTC (6 years, 11 months ago) by rousseau
add CmdXfrBlockAPDU_extended() to support Extended APDU readers

Revision 2093 - Directory Listing
Modified Mon Jul 3 14:03:58 2006 UTC (6 years, 11 months ago) by rousseau
CCID_Receive(): return the value of bChainParameter in *chain_parameter

Revision 2092 - Directory Listing
Modified Mon Jul 3 14:00:55 2006 UTC (6 years, 11 months ago) by rousseau
CmdXfrBlockTPDU_T1(): also log the length of the reception buffer

Revision 2091 - Directory Listing
Modified Mon Jul 3 13:59:13 2006 UTC (6 years, 11 months ago) by rousseau
use CCID_Receive() with the new API (use NULL as chain_parameter)

Revision 2090 - Directory Listing
Modified Mon Jul 3 13:56:42 2006 UTC (6 years, 11 months ago) by rousseau
CCID_Receive() has a new parameter: chain_parameter

Revision 2089 - Directory Listing
Modified Mon Jul 3 13:55:10 2006 UTC (6 years, 11 months ago) by rousseau
add #define CHAIN_PARAMETER_OFFSET

Revision 2088 - Directory Listing
Modified Mon Jul 3 13:44:28 2006 UTC (6 years, 11 months ago) by rousseau
move the "command length too big" checks from CmdXfrBlock() to
CmdXfrBlockTPDU_T0()

Revision 2087 - Directory Listing
Modified Mon Jul 3 13:36:49 2006 UTC (6 years, 11 months ago) by rousseau
CCID_Transmit(): log if the transmit buffer is too big

Revision 2086 - Directory Listing
Modified Mon Jul 3 13:15:59 2006 UTC (6 years, 11 months ago) by rousseau
CCID_Receive(): use <= instead of < to detect a reception buffer overrun
and log an error if it occurs

Revision 2085 - Directory Listing
Modified Mon Jul 3 12:57:50 2006 UTC (6 years, 11 months ago) by rousseau
ccid_open_hack(): the CL1356D firmware needs some time to initialize.
Wait 1 second here

Revision 2084 - Directory Listing
Modified Mon Jul 3 12:56:13 2006 UTC (6 years, 11 months ago) by rousseau
add #define CL1356D

Revision 2083 - Directory Listing
Modified Mon Jul 3 12:51:59 2006 UTC (6 years, 11 months ago) by rousseau
ReadUSB(): detect and ignore duplicated CCID frames

Revision 2082 - Directory Listing
Modified Fri Jun 30 14:04:33 2006 UTC (6 years, 11 months ago) by rousseau
ccid_error(): display the value of the Unknown CCID error code

Revision 2055 - Directory Listing
Modified Thu May 25 20:48:11 2006 UTC (7 years ago) by rousseau
update the licence from GPL to LGPL

Revision 2048 - Directory Listing
Modified Fri May 19 12:18:49 2006 UTC (7 years, 1 month ago) by rousseau
SCM SPR 532 with firmware < 5.10 has problems

Revision 2046 - Directory Listing
Modified Fri May 19 11:56:18 2006 UTC (7 years, 1 month ago) by rousseau
t1_transceive(): add a overrun debug message if we received more bytes
than we can store.

Revision 2045 - Directory Listing
Modified Fri May 19 11:53:54 2006 UTC (7 years, 1 month ago) by rousseau
t1_transceive(): add a debug message if we are in state DEAD. The card
must be reset first.

Revision 2041 - Directory Listing
Modified Wed May 10 20:53:49 2006 UTC (7 years, 1 month ago) by rousseau
correct a typo in a comment

Revision 2035 - Directory Listing
Modified Wed May 3 20:48:48 2006 UTC (7 years, 1 month ago) by rousseau
ccid_open_hack(): add SCM SCR331-DI-NTTCOM in the list of dual slots
contactless readers hack

Revision 2032 - Directory Listing
Modified Wed May 3 15:47:53 2006 UTC (7 years, 1 month ago) by rousseau
I used the MSB instead of LSB in parsing dwSynchProtocols

Revision 2022 - Directory Listing
Modified Sat Apr 22 16:00:28 2006 UTC (7 years, 1 month ago) by rousseau
add $(PROVIDED_BY_PCSC) to libccidtwin_la_SOURCES so that libccidtwin
uses its own log_xxd/log_msg when configured with --disable-pcsclite

Revision 2021 - Directory Listing
Modified Sat Apr 22 15:54:22 2006 UTC (7 years, 1 month ago) by rousseau
add $(TOKEN_PARSER) to libccidtwin_la_SOURCES

Revision 2019 - Directory Listing
Modified Thu Apr 20 18:57:14 2006 UTC (7 years, 2 months ago) by rousseau
declare the functions to export as EXTERNAL

Revision 2014 - Directory Listing
Modified Tue Apr 18 15:05:33 2006 UTC (7 years, 2 months ago) by rousseau
declare get_ccid_usb_interface() as EXTERNAL since this function is used
by src/parse

Revision 2013 - Directory Listing
Modified Tue Apr 18 15:04:58 2006 UTC (7 years, 2 months ago) by rousseau
#include "misc.h" so that ifdhandler.h functions are declared EXTERNAL

Revision 2012 - Directory Listing
Modified Tue Apr 18 15:03:41 2006 UTC (7 years, 2 months ago) by rousseau
add $(SYMBOL_VISIBILITY) to libccid_la_CFLAGS and libccidtwin_la_CFLAGS

Revision 2007 - Directory Listing
Modified Tue Apr 18 12:29:03 2006 UTC (7 years, 2 months ago) by rousseau
use tokenparser.l and parser.h from pcsc-lite (using a symlink in
subversion). So we also need strlcpy.c, strlcpycat.h and misc.h

Revision 2006 - Directory Listing
Modified Tue Apr 18 12:27:59 2006 UTC (7 years, 2 months ago) by rousseau
remove

Revision 2005 - Directory Listing
Modified Tue Apr 18 12:10:29 2006 UTC (7 years, 2 months ago) by rousseau
always use our own tokenparser.l even when pcsc-lite is used (do not use
LTPBundleFindValueWithKey from pcscd)

Revision 2002 - Directory Listing
Modified Fri Apr 14 18:42:41 2006 UTC (7 years, 2 months ago) by rousseau
firmwares for Athena ASE IIIe USBv2 and ASE IIIe KB USB were bogus.

Revision 1986 - Directory Listing
Modified Tue Mar 28 06:55:31 2006 UTC (7 years, 2 months ago) by rousseau
SecurePINVerify() and SecurePINModify(): Make sure
bEntryValidationCondition is valid

The Cherry XX44 keyboard smart card reader crashes when a wrong value is
used

Revision 1984 - Directory Listing
Modified Mon Mar 27 14:39:48 2006 UTC (7 years, 2 months ago) by rousseau
SecurePINVerify(): debug a debug message. use dw2i(TxBuffer, 15) instead
of just the first byte TxBuffer[15]

Revision 1983 - Directory Listing
Modified Mon Mar 27 14:38:35 2006 UTC (7 years, 2 months ago) by rousseau
SecurePINModify(): separate the validation test in three different tests
and add a debug message for each test

Revision 1982 - Directory Listing
Modified Mon Mar 27 14:23:30 2006 UTC (7 years, 2 months ago) by rousseau
SecurePINVerify(): debug a debug message :-)

Revision 1981 - Directory Listing
Modified Mon Mar 27 14:17:58 2006 UTC (7 years, 2 months ago) by rousseau
SecurePINModify(): circumvent a bug in Cherry XX44 keyboard firmware

Revision 1950 - Directory Listing
Modified Tue Mar 21 08:48:09 2006 UTC (7 years, 3 months ago) by rousseau
add support for SCM SDI 010 contactless reader

thanks to Oleg Makarenko for the patch

Revision 1927 - Directory Listing
Modified Mon Mar 6 09:13:56 2006 UTC (7 years, 3 months ago) by rousseau
use #if defined (__USB_H__) || defined (_SYS_USB_LIBUSB_USB_H) instead
of #ifdef __USB_H__ to support the Solaris libusb

thanks to Iain MacDonnell for the patch

Revision 1886 - Directory Listing
Modified Tue Feb 28 08:39:08 2006 UTC (7 years, 3 months ago) by rousseau
IFDHSetProtocolParameters(): if the card is in specific mode and request
a speed not supported by the reader we return IFD_COMMUNICATION_ERROR
instead of IFD_PROTOCOL_NOT_SUPPORTED so that pcsc-lite do not try to
talk to the card

Revision 1875 - Directory Listing
Modified Tue Feb 21 23:03:27 2006 UTC (7 years, 3 months ago) by rousseau
the ActivCard V2 is bogus (problem with wMaxPacketSize size frames)

Revision 1860 - Directory Listing
Modified Mon Feb 6 15:44:27 2006 UTC (7 years, 4 months ago) by rousseau
SecurePINVerify/SecurePINModify: get the data from a T=1 TPDU block only
if the exchange was successful (with special treatment for timeout and
cancel cases)

Revision 1859 - Directory Listing
Modified Mon Feb 6 15:26:28 2006 UTC (7 years, 4 months ago) by rousseau
SecurePINVerify(): move the prologue filing part to be homogenous with
SecurePINModify()

Revision 1858 - Directory Listing
Modified Mon Feb 6 15:23:41 2006 UTC (7 years, 4 months ago) by rousseau
SecurePINModify(): add support of T=1 cards with TPDU readers

Revision 1857 - Directory Listing
Modified Mon Feb 6 15:14:01 2006 UTC (7 years, 4 months ago) by rousseau
SecurePINVerify(): add support of T=1 cards with TPDU readers

Revision 1856 - Directory Listing
Modified Mon Feb 6 15:08:53 2006 UTC (7 years, 4 months ago) by rousseau
export t1_build() and some constants

Revision 1855 - Directory Listing
Modified Mon Feb 6 15:08:10 2006 UTC (7 years, 4 months ago) by rousseau
IFDHSetProtocolParameters(): store the card protocol in
ccid_desc->cardProtocol

Revision 1854 - Directory Listing
Modified Mon Feb 6 15:07:32 2006 UTC (7 years, 4 months ago) by rousseau
add a cardProtocol field to store the card protocol in use

Revision 1845 - Directory Listing
Modified Mon Jan 30 14:46:27 2006 UTC (7 years, 4 months ago) by rousseau
use $(foo) instead of @foo@ to do not replace the values but the variables

Revision 1832 - Directory Listing
Modified Tue Jan 24 16:32:14 2006 UTC (7 years, 4 months ago) by rousseau
add support for the SmartEpad (v 2.0) reader (MYSMARTPAD)

Revision 1819 - Directory Listing
Modified Fri Jan 20 13:27:21 2006 UTC (7 years, 5 months ago) by rousseau
rewrite to scan the devices ourself instead of calling
IFDHCreateChannel(). No need to have an updated Info.plist anymore.

Revision 1818 - Directory Listing
Modified Fri Jan 20 13:25:56 2006 UTC (7 years, 5 months ago) by rousseau
get_ccid_usb_interface(): use the same code for a device with 1 or >1
interfaces

Revision 1808 - Directory Listing
Modified Wed Jan 18 10:25:34 2006 UTC (7 years, 5 months ago) by rousseau
add support of GemCore SIM Pro and GemCore POS Pro (serial and USB).

Revision 1807 - Directory Listing
Modified Wed Jan 18 10:24:09 2006 UTC (7 years, 5 months ago) by rousseau
CloseUSB(): free the allocated arrayOfSupportedDataRates only for the
pimary slot. The other slots of the same reader either point to the
same array or point to a statically allocated array.

Revision 1806 - Directory Listing
Modified Wed Jan 18 09:24:15 2006 UTC (7 years, 5 months ago) by rousseau
IFDHSetProtocolParameters(): exit the while if you find a correct speed
in the case of a card too fast

Revision 1805 - Directory Listing
Modified Wed Jan 18 07:38:06 2006 UTC (7 years, 5 months ago) by rousseau
ccid_open_hack(): update the spanish PIN Pad string since the number of
remaining tries in always displayed at the first character

Revision 1804 - Directory Listing
Modified Tue Jan 17 19:57:11 2006 UTC (7 years, 5 months ago) by rousseau
OpenUSBByName(): check that usbDevice[previous_reader_index].dev is
still valid before dereferencing it

Thanks to Martin Paljak for the bug report

Revision 1803 - Directory Listing
Modified Tue Jan 17 19:49:49 2006 UTC (7 years, 5 months ago) by rousseau
use @PTHREAD_CFLAGS@ and @PTHREAD_LIBS@

Revision 1801 - Directory Listing
Modified Tue Jan 17 13:41:26 2006 UTC (7 years, 5 months ago) by rousseau
OpenSerialByName(): call CloseSerial() if the "Get firmware" or "Change
card movement notification" command failed

Revision 1800 - Directory Listing
Modified Mon Jan 16 13:45:50 2006 UTC (7 years, 5 months ago) by rousseau
SecurePINVerify(): bug circumvention for the GemPC Pinpad
(bNumberMessage)

Revision 1799 - Directory Listing
Modified Thu Jan 12 21:51:25 2006 UTC (7 years, 5 months ago) by rousseau
ccid_open_hack(): use { } around DEBUG_COMM() in an if-else since
DEBUG_COMM() is not a function but an multi-instruction macro

Revision 1797 - Directory Listing
Modified Wed Jan 11 15:32:37 2006 UTC (7 years, 5 months ago) by rousseau
IFDHSetProtocolParameters(): if the card is faster than the reader
(TA1=97 for example) we try to use a no so bad speed (corresponding to
TA1=96, 95 or 94) instead of the default speed of TA1=11

Revision 1796 - Directory Listing
Modified Wed Jan 11 14:56:24 2006 UTC (7 years, 5 months ago) by rousseau
ccid_open_hack(): load the localisation strings according to LANG
environment variable. Languages supported: de, en, es, fr, it

Revision 1795 - Directory Listing
Modified Wed Jan 11 10:39:54 2006 UTC (7 years, 5 months ago) by rousseau
move the comment about APDU mode from ccid_open_hack() to Info.plist
since it is configured there

Revision 1794 - Directory Listing
Modified Wed Jan 11 10:34:06 2006 UTC (7 years, 5 months ago) by rousseau
SecurePINModify(): bug circumvention for the GemPC Pinpad

Revision 1793 - Directory Listing
Modified Wed Jan 11 10:16:48 2006 UTC (7 years, 5 months ago) by rousseau
SecurePINModify(): modify the user command to make the SPR 532 and
Cherry ST 2000C firmware happy

Revision 1792 - Directory Listing
Modified Wed Jan 11 09:14:47 2006 UTC (7 years, 5 months ago) by rousseau
OpenUSBByName(): use log level INFO instead of CRITICAL to display
copyright information

Revision 1791 - Directory Listing
Modified Wed Jan 11 09:08:43 2006 UTC (7 years, 5 months ago) by rousseau
release the allocated ressources only when the last slot of a multi-slot
reader is closed

Revision 1790 - Directory Listing
Modified Wed Jan 11 07:51:13 2006 UTC (7 years, 5 months ago) by rousseau
allow to select the power on voltage using Info.plist instead of
recompiling the source code

Revision 1780 - Directory Listing
Modified Thu Dec 8 09:32:36 2005 UTC (7 years, 6 months ago) by rousseau
typo in a comment

Revision 1775 - Directory Listing
Modified Tue Nov 29 14:33:22 2005 UTC (7 years, 6 months ago) by rousseau
OpenUSBByName(): do not (re)set the usbDevice[].ccid.pbSeq field since
we just copied the complete structure just before

Revision 1774 - Directory Listing
Modified Tue Nov 29 13:54:07 2005 UTC (7 years, 6 months ago) by rousseau
Avoid a possible division by 0 if f or d parameter is null.
This could happen only with non-ISO cards with TA1=0x00 or other
undefined values

Revision 1773 - Directory Listing
Modified Tue Nov 29 13:43:40 2005 UTC (7 years, 6 months ago) by rousseau
add support of non-ISO TA1=0x97 (Di=7 is/was RFU)

Revision 1771 - Directory Listing
Modified Tue Nov 29 12:21:00 2005 UTC (7 years, 6 months ago) by rousseau
remove PCSC/ from the pcsc-lite #include header files since the PCSC/
part is already given by `pkg-config --cflags libpcsclite`

Revision 1752 - Directory Listing
Modified Thu Nov 24 16:16:33 2005 UTC (7 years, 6 months ago) by rousseau
IFDHGetCapabilities(): use info instead of comm debug level to print the
number of slots supported by the reader

Revision 1747 - Directory Listing
Modified Thu Nov 24 15:49:00 2005 UTC (7 years, 6 months ago) by rousseau
SecurePINVerify()/SecurePINModify(): set the response length to 0 in
case of (write) communication error

Revision 1746 - Directory Listing
Modified Thu Nov 24 15:47:10 2005 UTC (7 years, 6 months ago) by rousseau
SecurePINModify(): set the response length to 0 in case of error in the
command format

Revision 1745 - Directory Listing
Modified Thu Nov 24 15:46:21 2005 UTC (7 years, 6 months ago) by rousseau
IFDHControl(): use sizeof(PCSC_TLV_STRUCTURE) instead of 6

Revision 1739 - Directory Listing
Modified Thu Nov 24 14:21:00 2005 UTC (7 years, 6 months ago) by rousseau
t1_xcv(): correct the comment about &rmax

Revision 1738 - Directory Listing
Modified Thu Nov 24 14:19:30 2005 UTC (7 years, 6 months ago) by rousseau
t1_xcv(): the second argument of CCID_Receive() is (unsigned int *)
so we can't use &rmax since &rmax is a (size_t *) and may not
be the same on 64-bits architectures for example (iMac G5) */

Revision 1737 - Directory Listing
Modified Thu Nov 24 13:50:24 2005 UTC (7 years, 6 months ago) by rousseau
tokenparser.l is only needed when pcscd is not used (Solaris). It is not
needed on Mac OS X since LTPBundleFindValueWithKey() is provided by
pcscd

Revision 1733 - Directory Listing
Modified Thu Nov 24 10:06:04 2005 UTC (7 years, 6 months ago) by rousseau
use LIBUSB_CFLAGS/LIBUSB_LIBS instead of LDFLAGS/CPPFLAGS for libusb
configuration

Revision 1704 - Directory Listing
Modified Tue Nov 15 11:04:07 2005 UTC (7 years, 7 months ago) by rousseau
SecurePINModify(): set the readTimeout to at least 30 seconds since we
are not waiting after an APDU but after a human (after the reader in
fact).

Revision 1703 - Directory Listing
Modified Mon Nov 7 15:46:03 2005 UTC (7 years, 7 months ago) by rousseau
remove #ifdef DEBUG_LEVEL_COMM since DEBUG_LEVEL_COMM is a numeric value
and not a compilation flag anymore. Debug is always active and filtered
by pcscd.

Revision 1702 - Directory Listing
Modified Mon Nov 7 15:41:47 2005 UTC (7 years, 7 months ago) by rousseau
exchange COMM and PERIODIC debug values so that all except PERIODIC
value is 7

Revision 1701 - Directory Listing
Modified Sun Oct 30 14:44:25 2005 UTC (7 years, 7 months ago) by rousseau
SecurePINModify(): correct management of bMsgIndex2 and bMsgIndex3

Revision 1700 - Directory Listing
Modified Sun Oct 30 14:43:16 2005 UTC (7 years, 7 months ago) by rousseau
SecurePINModify(): do not copy the ulDataLength field to the CCID frame

Revision 1699 - Directory Listing
Modified Sun Oct 30 14:40:42 2005 UTC (7 years, 7 months ago) by rousseau
#define CHERRYST2000

Revision 1677 - Directory Listing
Modified Tue Sep 27 13:07:38 2005 UTC (7 years, 8 months ago) by rousseau
CCID_Transmit(): cmd[8-9] is the expected length in character mode only.
It shall be 0x0000 for TPDU and short APDU modes.

Revision 1675 - Directory Listing
Modified Mon Sep 26 14:42:26 2005 UTC (7 years, 8 months ago) by rousseau
SecurePINVerify(): set the readTimeout to at least 30 seconds since we
are not waiting after an APDU but after a human.

Revision 1674 - Directory Listing
Modified Mon Sep 26 13:19:04 2005 UTC (7 years, 8 months ago) by rousseau
_ccid_descriptor.readTimeout is in seconds even for USB. The comment was
wrong

Revision 1670 - Directory Listing
Modified Tue Sep 20 07:07:26 2005 UTC (7 years, 9 months ago) by rousseau
SecurePINVerify(): update the size of ulDataLength field as defined in
PCSCv2 part 10, revision 2.01.04, september 2005

Revision 1641 - Directory Listing
Modified Mon Sep 5 14:43:02 2005 UTC (7 years, 9 months ago) by rousseau
get_data_rates(): check the response size only if bNumDataRatesSupported
is non zero

Revision 1640 - Directory Listing
Modified Mon Sep 5 14:40:13 2005 UTC (7 years, 9 months ago) by rousseau
if bNumDataRatesSupported is 0 we get the list size from what
GET DATA RATES command returns

idem for bNumClockSupported

Revision 1639 - Directory Listing
Modified Mon Sep 5 13:17:09 2005 UTC (7 years, 9 months ago) by rousseau
do not request data rates if the reader reports it support a 0 length
list. Idem for clocks.

Revision 1638 - Directory Listing
Modified Mon Sep 5 13:15:14 2005 UTC (7 years, 9 months ago) by rousseau
print bNumClockSupported: as %d and not 0x%02X

Revision 1630 - Directory Listing
Modified Thu Sep 1 09:11:30 2005 UTC (7 years, 9 months ago) by rousseau
add support of PC/SC v2 part 10 CM_IOCTL_GET_FEATURE_REQUEST
add support of FEATURE_VERIFY_PIN_DIRECT and FEATURE_MODIFY_PIN_DIRECT

remove support of IOCTL_SMARTCARD_VENDOR_VERIFY_PIN (now obsoleted)

Revision 1619 - Directory Listing
Modified Tue Aug 16 06:50:18 2005 UTC (7 years, 10 months ago) by rousseau
removed since we use SVN and not CVS anymore

Thanks to Martin Paljak for the idea

Revision 1614 - Directory Listing
Modified Sat Aug 13 14:27:23 2005 UTC (7 years, 10 months ago) by rousseau
document DRIVER_OPTION_RESET_ON_CLOSE

Revision 1613 - Directory Listing
Modified Sat Aug 13 14:26:22 2005 UTC (7 years, 10 months ago) by rousseau
CloseUSB(): call usb_reset() only if DRIVER_OPTION_RESET_ON_CLOSE is
set.

The problem was that a device reset also disconnects the keyboard on a
keyboard + reader device.

Revision 1612 - Directory Listing
Modified Sat Aug 13 14:24:25 2005 UTC (7 years, 10 months ago) by rousseau
 #define DRIVER_OPTION_RESET_ON_CLOSE

Revision 1609 - Directory Listing
Modified Thu Aug 11 13:50:34 2005 UTC (7 years, 10 months ago) by rousseau
check that we do not receive more data rates anc clock frequencies than the
reader supports

Revision 1608 - Directory Listing
Modified Thu Aug 11 13:48:21 2005 UTC (7 years, 10 months ago) by rousseau
get_data_rates(): check that we do not get more data rates than the
reader supports

Revision 1600 - Directory Listing
Modified Wed Aug 3 18:00:47 2005 UTC (7 years, 10 months ago) by rousseau
CCID_Receive(): log time extension messages at priority COMM instead of
CRITICAL.

Thanks to Martin Paljak for the patch.

Revision 1585 - Directory Listing
Modified Tue Aug 2 13:44:09 2005 UTC (7 years, 10 months ago) by rousseau
OpenUSBByName(): call usb_close() if the device can't be used

Revision 1570 - Directory Listing
Modified Mon Jul 4 10:17:50 2005 UTC (7 years, 11 months ago) by rousseau
IFDHControl(): having a NULL RxBuffer is not an error since it is enough
to send the code in dwControlCode

Thanks to Martin Paljak for the patch

Revision 1569 - Directory Listing
Modified Mon Jul 4 09:17:27 2005 UTC (7 years, 11 months ago) by rousseau
OpenUSBByName(): vendorID, productID are unsigned
avoids a "comparison between signed and unsigned" warning

Revision 1568 - Directory Listing
Modified Mon Jul 4 09:11:52 2005 UTC (7 years, 11 months ago) by rousseau
struct _ccid_descriptor: dwMaxDataRate is unsigned
avoids a "comparison between signed and unsigned" warning

Revision 1567 - Directory Listing
Modified Mon Jul 4 09:10:07 2005 UTC (7 years, 11 months ago) by rousseau
struct _ccid_descriptor: dwMaxCCIDMessageLength is unsigned
avoids a "comparison between signed and unsigned" warning

Revision 1566 - Directory Listing
Modified Mon Jul 4 09:08:27 2005 UTC (7 years, 11 months ago) by rousseau
CmdPowerOn(): atr_len is unsigned
avoids a "comparison between signed and unsigned" warning

Revision 1563 - Directory Listing
Modified Thu Jun 16 14:12:11 2005 UTC (8 years ago) by rousseau
parse wLcdLayout

Revision 1562 - Directory Listing
Modified Thu Jun 16 14:08:07 2005 UTC (8 years ago) by rousseau
parse bClassEnveloppe

Revision 1561 - Directory Listing
Modified Thu Jun 16 14:06:16 2005 UTC (8 years ago) by rousseau
pares bClassGetResponse

Revision 1560 - Directory Listing
Modified Thu Jun 16 13:52:17 2005 UTC (8 years ago) by rousseau
parse dwSynchProtocols

Revision 1559 - Directory Listing
Modified Wed Jun 15 12:55:45 2005 UTC (8 years ago) by rousseau
 #include <PCSC/reader.h>

Revision 1557 - Directory Listing
Modified Wed Jun 15 12:54:34 2005 UTC (8 years ago) by rousseau
remove definition of SCARD_CTL_CODE

Revision 1547 - Directory Listing
Modified Sat Jun 4 09:44:31 2005 UTC (8 years ago) by rousseau
WriteUSB(): do not parse usbDevice[reader_index].dev->bus if it is a
NULL pointer (the device has been removed for example)

Revision 1511 - Directory Listing
Modified Thu May 5 10:05:02 2005 UTC (8 years, 1 month ago) by rousseau
do not #include <math.h> since we now use +1 instead of ceil() to round
the calculated timeouts to the upper integer
- we do not need an mathematical exact value. the {usb,serial}read must
  just not timeout before the reader firmware timeouts
- we avoid a dependency/link on the math library

Revision 1510 - Directory Listing
Modified Thu May 5 10:01:17 2005 UTC (8 years, 1 month ago) by rousseau
T0_card_timeout(): use intermediate variables EGT, BWT, CWT, etu to
improve code readability

Revision 1509 - Directory Listing
Modified Thu May 5 09:59:21 2005 UTC (8 years, 1 month ago) by rousseau
T0_card_timeout(): declare EGT, WWT as double instead of int to have
some precision
We also calculate EGT and WWT in milliseconds instead of seconds

Revision 1507 - Directory Listing
Modified Wed May 4 10:11:28 2005 UTC (8 years, 1 month ago) by rousseau
IFDHCreateChannelByName(), T0_card_timeout(), T1_card_timeout(): also
include other card parameters (TC1 for T=0, TC1 and CWI for T=1) in the
timeout formula

Revision 1505 - Directory Listing
Modified Wed May 4 06:16:49 2005 UTC (8 years, 1 month ago) by rousseau
IFDHICCPresence(): add support of SCR331-DI NTTCom

Thanks to Takuto Matsuu fro the patch

Revision 1504 - Directory Listing
Modified Wed May 4 06:14:52 2005 UTC (8 years, 1 month ago) by rousseau
 #define SCR331DINTTCOM 0x04E65120

Revision 1496 - Directory Listing
Modified Mon May 2 13:37:13 2005 UTC (8 years, 1 month ago) by rousseau
typo in the data rates list

Revision 1495 - Directory Listing
Modified Mon May 2 13:28:30 2005 UTC (8 years, 1 month ago) by rousseau
T0_card_timeout()/T1_card_timeout(): use ceil() to round the timeout

Revision 1494 - Directory Listing
Modified Mon May 2 12:07:13 2005 UTC (8 years, 1 month ago) by rousseau
ccid_error(): function is (const char *) instead of (char *) to avoid a
"warning: passing arg 4 of `ccid_error' discards qualifiers from pointer
target type" using gcc 3.4

Revision 1492 - Directory Listing
Modified Mon May 2 11:36:08 2005 UTC (8 years, 1 month ago) by rousseau
CmdEscape(): replay the command if we receive STATUS_COMM_NAK

Revision 1491 - Directory Listing
Modified Mon May 2 11:33:04 2005 UTC (8 years, 1 month ago) by rousseau
ReadSerial(): if we get a NAK we return STATUS_COMM_NAK to the above
layer to replay the command instead of just restarting the read

Revision 1490 - Directory Listing
Modified Mon May 2 11:31:11 2005 UTC (8 years, 1 month ago) by rousseau
add STATUS_COMM_NAK

Revision 1489 - Directory Listing
Modified Mon May 2 09:55:31 2005 UTC (8 years, 1 month ago) by rousseau
display the clock frequencies supported by the reader

Revision 1488 - Directory Listing
Modified Mon May 2 09:53:24 2005 UTC (8 years, 1 month ago) by rousseau
move the display of supported data rates after printing
bNumDataRatesSupported info

Revision 1487 - Directory Listing
Modified Mon May 2 09:21:56 2005 UTC (8 years, 1 month ago) by rousseau
IFDHSetProtocolParameters(): check if the baud rate is present in the
baud rates list only if the list is present. Otherwise we use the old
behavior.

Revision 1486 - Directory Listing
Modified Mon May 2 09:19:36 2005 UTC (8 years, 1 month ago) by rousseau
get_data_rates(): if the reader do not support GET DATA RATES we return
NULL instead of a manually constructed/fake list

Revision 1485 - Directory Listing
Modified Mon May 2 09:17:53 2005 UTC (8 years, 1 month ago) by rousseau
Open*ByName(): initialise dwMaxDataRate field

Revision 1484 - Directory Listing
Modified Mon May 2 09:16:26 2005 UTC (8 years, 1 month ago) by rousseau
add dwMaxDataRate field (again)

Revision 1483 - Directory Listing
Modified Mon May 2 08:30:57 2005 UTC (8 years, 1 month ago) by rousseau
get_data_rates(): check that the reader sends a DATA RATES list size
multiple of 4 othewise it is an error

Revision 1482 - Directory Listing
Modified Mon May 2 08:24:57 2005 UTC (8 years, 1 month ago) by rousseau
display the bit value of dwFeatures in the text message

Revision 1481 - Directory Listing
Modified Mon May 2 08:21:47 2005 UTC (8 years, 1 month ago) by rousseau
test all the 4 bytes of dwFeatures against 0 and not just the first one

Revision 1480 - Directory Listing
Modified Mon May 2 08:20:10 2005 UTC (8 years, 1 month ago) by rousseau
do not display the list returned by GET DATA RATES if the list size is
not a multiple of 4 (n % 4 != 0)

Revision 1479 - Directory Listing
Modified Wed Apr 27 14:10:38 2005 UTC (8 years, 1 month ago) by rousseau
Open*ByName: do not initialise the now disappeared .dwMaxDataRate field

Revision 1478 - Directory Listing
Modified Wed Apr 27 14:09:16 2005 UTC (8 years, 1 month ago) by rousseau
_ccid_descriptor: remove the now useless dwMaxDataRate field

Revision 1477 - Directory Listing
Modified Wed Apr 27 14:08:35 2005 UTC (8 years, 1 month ago) by rousseau
IFDHSetProtocolParameters(): we do not check if (card_baudrate <=
ccid_desc->dwMaxDataRate) since find_baud_rate() will tell us if the
speed is supported or not by the reader

Revision 1476 - Directory Listing
Modified Wed Apr 27 14:04:38 2005 UTC (8 years, 1 month ago) by rousseau
get_data_rates(): if the CCID command GET DATA RATES is nto supported
the array of supported rates contains only the default and max data
rates

Revision 1475 - Directory Listing
Modified Wed Apr 27 13:55:52 2005 UTC (8 years, 1 month ago) by rousseau
get_data_rates(): test if int_array is NULL (and not buffer)

Revision 1472 - Directory Listing
Modified Wed Apr 27 13:35:19 2005 UTC (8 years, 1 month ago) by rousseau
OpenSerialByName(): inhibit the Plug-n-Play string by setting the RTS
signal to low. Mainly useful for the GemPC Card (PCMCIA)

Revision 1468 - Directory Listing
Modified Wed Apr 27 13:21:32 2005 UTC (8 years, 1 month ago) by rousseau
display the supported data rates using the CCID command GET DATA RATES

Revision 1467 - Directory Listing
Modified Wed Apr 27 13:20:39 2005 UTC (8 years, 1 month ago) by rousseau
get_data_rates(): use the real interface number instead of 0

Revision 1460 - Directory Listing
Modified Wed Apr 27 12:11:47 2005 UTC (8 years, 1 month ago) by rousseau
get_data_rates(): buffer argument of usb_control_msg is (char *) and not
(unsigned char *)

Revision 1459 - Directory Listing
Modified Wed Apr 27 12:10:45 2005 UTC (8 years, 1 month ago) by rousseau
get_data_rates() returns an unsigned int [] (not just int [])

Revision 1458 - Directory Listing
Modified Wed Apr 27 12:09:26 2005 UTC (8 years, 1 month ago) by rousseau
SerialDataRates[] is unsigned

Revision 1454 - Directory Listing
Modified Tue Apr 26 14:35:50 2005 UTC (8 years, 1 month ago) by rousseau
t1_xcv(): increase the read timeout if the card sends and WTX request

Revision 1453 - Directory Listing
Modified Tue Apr 26 14:34:52 2005 UTC (8 years, 1 month ago) by rousseau
use the calculated read timeout instead of a fixed value

Revision 1452 - Directory Listing
Modified Tue Apr 26 14:33:43 2005 UTC (8 years, 1 month ago) by rousseau
calculate and store the read timeout according to the card ATR instead
of using a fixed value of 60 seconds

Revision 1451 - Directory Listing
Modified Tue Apr 26 14:30:38 2005 UTC (8 years, 1 month ago) by rousseau
add T0_card_timeout() and T1_card_timeout()

Revision 1450 - Directory Listing
Modified Tue Apr 26 14:23:23 2005 UTC (8 years, 1 month ago) by rousseau
 /* Default communication read timeout in seconds */
 #define DEFAULT_COM_READ_TIMEOUT 2

Revision 1449 - Directory Listing
Modified Tue Apr 26 14:22:50 2005 UTC (8 years, 1 month ago) by rousseau
struct _ccid_descriptor: add unsigned int readTimeout field

Revision 1448 - Directory Listing
Modified Tue Apr 26 13:46:07 2005 UTC (8 years, 1 month ago) by rousseau
IFDHSetProtocolParameters(): only use a data rate supported by the
reader in the PPS negociation, otherwise we stay at the default speed.

Revision 1447 - Directory Listing
Modified Tue Apr 26 13:44:08 2005 UTC (8 years, 1 month ago) by rousseau
OpenSerialByName(): the reader does not support the Get Data Rates CCID
function so the list of supported data rates is hard coded.

Revision 1446 - Directory Listing
Modified Tue Apr 26 13:43:13 2005 UTC (8 years, 1 month ago) by rousseau
OpenUSBByName(): get the list of data rates the reader supports

See 3.7.3 Get Data Rates (page 25) from CCID spec 1.00

Revision 1445 - Directory Listing
Modified Tue Apr 26 13:40:48 2005 UTC (8 years, 1 month ago) by rousseau
struct _ccid_descriptor: add unsigned int *arrayOfSupportedDataRates field

Revision 1444 - Directory Listing
Modified Tue Apr 26 12:38:25 2005 UTC (8 years, 1 month ago) by rousseau
OpenSerialByName(): set card movement notification in synchronous mde

Revision 1442 - Directory Listing
Modified Tue Apr 26 12:29:45 2005 UTC (8 years, 1 month ago) by rousseau
extra_egt(): rewrite the function comment

Revision 1441 - Directory Listing
Modified Tue Apr 26 12:16:26 2005 UTC (8 years, 1 month ago) by rousseau
extra_egt(): reuse the same baud rate calculation formula

Revision 1440 - Directory Listing
Modified Tue Apr 26 12:07:44 2005 UTC (8 years, 1 month ago) by rousseau
extra_egt(): change two if() in one

Revision 1439 - Directory Listing
Modified Tue Apr 26 12:06:13 2005 UTC (8 years, 1 month ago) by rousseau
change comments: TBi (i>2) is BWI/CWI not BWI/BCI

Revision 1438 - Directory Listing
Modified Mon Apr 25 13:34:27 2005 UTC (8 years, 1 month ago) by rousseau
extra_egt(): some (bogus) cards require an extra EGT but the ATR does
not say so. We try to detect the bogus cards and set TC1=2

Revision 1437 - Directory Listing
Modified Mon Apr 25 13:12:24 2005 UTC (8 years, 1 month ago) by rousseau
light code reformating

Revision 1427 - Directory Listing
Modified Thu Apr 21 07:41:27 2005 UTC (8 years, 2 months ago) by rousseau
 #include <stdint.h> only if HAVE_STDINT_H is defined.
Some old FreeBSD do not have stdint.h.

Thanks to Tilman Linneweh for the patch

Revision 1422 - Directory Listing
Modified Tue Apr 12 19:17:26 2005 UTC (8 years, 2 months ago) by rousseau
"Generic CCID reader" -> "Generic CCID driver"

Revision 1411 - Directory Listing
Modified Thu Mar 17 10:27:57 2005 UTC (8 years, 3 months ago) by rousseau
ccid_error(): use log_msg() instead of debug_msg()

Revision 1410 - Directory Listing
Modified Thu Mar 17 10:27:08 2005 UTC (8 years, 3 months ago) by rousseau
change debug_msg() in log_msg() and add the priority argument
same for debug_xxd() changed in log_xxd()

These functions are only used by the parse command and if the driver is
not used with pcsclite

Revision 1409 - Directory Listing
Modified Thu Mar 17 10:24:41 2005 UTC (8 years, 3 months ago) by rousseau
use pcsclite debuglog.h header file and use its Log?() macro instead of
debug_msg().

This adds color to the log messages because Log?() macros use log_msg()
instead of the deprecated debug_msg() function.

Revision 1408 - Directory Listing
Modified Thu Mar 17 10:22:18 2005 UTC (8 years, 3 months ago) by rousseau
init_driver(): use DEBUG_INFO2() instead of debug_msg()

Revision 1407 - Directory Listing
Modified Thu Mar 17 10:16:06 2005 UTC (8 years, 3 months ago) by rousseau
add "%option nounput" to avoid the compilation warning
"`yyunput' defined but not used"

Revision 1406 - Directory Listing
Modified Thu Mar 17 10:14:20 2005 UTC (8 years, 3 months ago) by rousseau
ATR_GetDefaultProtocol(): the message "no default protocol found in ATR.
Using T=0" is not CRITICAL but INFO only

Revision 1399 - Directory Listing
Modified Mon Mar 14 18:56:53 2005 UTC (8 years, 3 months ago) by rousseau
change licence from GNU GPL to GNU LGPL

Revision 1368 - Directory Listing
Modified Mon Feb 28 09:35:56 2005 UTC (8 years, 3 months ago) by rousseau
use ATR_t instead of ATR

Revision 1367 - Directory Listing
Modified Mon Feb 28 09:34:20 2005 UTC (8 years, 3 months ago) by rousseau
rename ATR struct to ATR_t do not conflict with ATR field defined by
PCSC/ifdhandler.h.
This allows compilation using tcc (Tiny C Compiler)

Revision 1355 - Directory Listing
Modified Fri Feb 25 17:26:57 2005 UTC (8 years, 3 months ago) by rousseau
typo: used "ICC" instead of "CCID"

Revision 1354 - Directory Listing
Modified Fri Feb 25 17:25:44 2005 UTC (8 years, 3 months ago) by rousseau
IFDHSetProtocolParameters(): return immediately if the reader has the
bit CCID_CLASS_AUTO_PPS_PROP set since he will perform PPS and
SetParameters himself

Revision 1353 - Directory Listing
Modified Fri Feb 25 17:24:48 2005 UTC (8 years, 3 months ago) by rousseau
 #define CCID_CLASS_AUTO_PPS_PROP       0x00000040

Revision 1352 - Directory Listing
Modified Fri Feb 25 17:19:00 2005 UTC (8 years, 3 months ago) by rousseau
IFDHSetProtocolParameters(): calculate the value of pps[2] (TA1) even if
CCID_CLASS_AUTO_PPS_CUR bit is set and no PPS will be generated by the
driver since this value is also used later by the SetParameters()

Revision 1351 - Directory Listing
Modified Fri Feb 25 17:14:46 2005 UTC (8 years, 3 months ago) by rousseau
IFDHSetProtocolParameters(): use "card_baudrate <= ccid_desc->dwMaxDataRate"
instead of "card_baudrate < ccid_desc->dwMaxDataRate" to not miss the
maximum speed value

Revision 1343 - Directory Listing
Modified Wed Feb 23 12:15:54 2005 UTC (8 years, 3 months ago) by rousseau
if you use --disable-pcsclite and do _not_ want to see the logs sent to
stderr just #undef LOG_TO_STDERR

Revision 1342 - Directory Listing
Modified Wed Feb 23 12:08:51 2005 UTC (8 years, 3 months ago) by rousseau
if --disable-pcsclite is used we must link the library with debug.c
to provide debug_msg()

Revision 1330 - Directory Listing
Modified Mon Feb 21 14:06:53 2005 UTC (8 years, 3 months ago) by rousseau
OpenSerialByName(): use tx_buffer[] = { 0x02 } insead of "\x02" since we
want 1 byte only and not a null-terminated string

Revision 1329 - Directory Listing
Modified Mon Feb 21 12:29:53 2005 UTC (8 years, 3 months ago) by rousseau
use @PCSC_CFLAGS@

Revision 1327 - Directory Listing
Modified Sun Feb 20 14:34:42 2005 UTC (8 years, 3 months ago) by rousseau
add an "interface field" in _usbDevice. This value is set in OpenUSB()
and used in CloseUSB().

The struct usb_device structure is half "corrupted" after the USB device
is removed and we wanted to use it when when closing the driver after a
reader removal. This caused a crash with libusb 0.1.10.

Revision 1325 - Directory Listing
Modified Sun Feb 20 14:03:07 2005 UTC (8 years, 3 months ago) by rousseau
Bogus_firmwares[]: add Kobil KAAN Base & KAAN Advanced readers

Revision 1312 - Directory Listing
Modified Thu Jan 13 10:37:40 2005 UTC (8 years, 5 months ago) by rousseau
Bogus_firmwares[]: the 3 SMC readers had the same (cut-n-paste) USB
identification

Revision 1311 - Directory Listing
Modified Thu Jan 13 09:35:16 2005 UTC (8 years, 5 months ago) by rousseau
CmdXfrBlockCHAR_T0(): move a variable declaration at the beginning of
the function since ISO C89 forbids mixed declarations and code

Revision 1310 - Directory Listing
Modified Thu Jan 13 09:32:17 2005 UTC (8 years, 5 months ago) by rousseau
SecurePIN(): proprietary command to add the PIN code in the APDU without
any padding (this is not possible with the CCID specs).

Thanks to Martin Paljak for the patch.

Revision 1309 - Directory Listing
Modified Thu Jan 13 09:21:11 2005 UTC (8 years, 5 months ago) by rousseau
define SPR532 USB identification

Revision 1301 - Directory Listing
Modified Sun Jan 9 21:29:57 2005 UTC (8 years, 5 months ago) by rousseau
SecurePIN(), CCID_Transmit(), SetParameters(): check that the user
provided command is not too large (avoid a possible buffer overflow)

Revision 1299 - Directory Listing
Modified Sun Jan 9 21:26:29 2005 UTC (8 years, 5 months ago) by rousseau
SecurePIN(): directly use the user buffer passed instead of reversing
the APDU/CCID structure. It is now as described in the CCID
specifications.

Thanks to Martin Paljak. I was wrong.

Revision 1298 - Directory Listing
Modified Sun Dec 19 17:13:27 2004 UTC (8 years, 6 months ago) by rousseau
SPR 532 firmware previous to 5.04 is bogus regarding min/max pin lengths

Revision 1292 - Directory Listing
Modified Wed Oct 27 13:52:44 2004 UTC (8 years, 7 months ago) by rousseau
OpenSerialByName(): use %s instead of %d for dev_name

Revision 1287 - Directory Listing
Modified Tue Oct 19 08:40:42 2004 UTC (8 years, 8 months ago) by rousseau
check firmware version to avoid firmwares with bugs. You can still use a
bigus firmware by setting DRIVER_OPTION_USE_BOGUS_FIRMWARE in Info.plist

Revision 1286 - Directory Listing
Modified Tue Oct 19 07:22:07 2004 UTC (8 years, 8 months ago) by rousseau
Add support of character level communication (CCID_CLASS_CHARACTER).

Thanks to Jeffrey Dai

Revision 1281 - Directory Listing
Modified Thu Oct 7 20:28:49 2004 UTC (8 years, 8 months ago) by rousseau
the first argument of get_desc() is lun instead of channel and the
function uses LunToReaderIndex() to get the reader index

Revision 1280 - Directory Listing
Modified Thu Oct 7 20:27:16 2004 UTC (8 years, 8 months ago) by rousseau
use lun instead of channel as first argument to get_desc() and use the
returned value to detect an error

Revision 1277 - Directory Listing
Modified Wed Oct 6 12:01:29 2004 UTC (8 years, 8 months ago) by rousseau
display idVendor and idProduct

Revision 1276 - Directory Listing
Modified Wed Oct 6 11:52:45 2004 UTC (8 years, 8 months ago) by rousseau
display USB bcdDevice field. Is it the device firmware release?

Revision 1275 - Directory Listing
Modified Wed Oct 6 11:42:41 2004 UTC (8 years, 8 months ago) by rousseau
add support of "Character level exchange"

Revision 1261 - Directory Listing
Modified Thu Sep 30 14:12:20 2004 UTC (8 years, 8 months ago) by rousseau
mask bStatus to get the ICC state since bSatus may also indicate
an error in b6-b7

Revision 1260 - Directory Listing
Modified Thu Sep 30 14:05:54 2004 UTC (8 years, 8 months ago) by rousseau
 #define CCID_CLASS_CHARACTER

Revision 1259 - Directory Listing
Modified Thu Sep 30 14:03:57 2004 UTC (8 years, 8 months ago) by rousseau
define OZ776 USB identification

Revision 1258 - Directory Listing
Modified Thu Sep 30 14:02:35 2004 UTC (8 years, 8 months ago) by rousseau
define CCID_ICC_STATUS_MASK and status states

Revision 1257 - Directory Listing
Modified Thu Sep 30 14:00:13 2004 UTC (8 years, 8 months ago) by rousseau
CmdGetSlotStatus(): card absent or mute is not an communication error
(even if the CCID command result indicates a command failure)

Revision 1256 - Directory Listing
Modified Thu Sep 30 13:57:07 2004 UTC (8 years, 8 months ago) by rousseau
get_ccid_usb_interface(): the O2Micro OZ776S reader has a wrong USB
descriptor. The extra[] field is associated with the last endpoint instead
of the main USB descriptor.

Revision 1254 - Directory Listing
Modified Wed Sep 29 08:08:39 2004 UTC (8 years, 8 months ago) by rousseau
use @AM_CPPFLAGS@ (defined by configure.in) instead of `pkg-config
libpcsclite --cflags` since PKG_CONFIG_PATH may not be correct here

Revision 1252 - Directory Listing
Modified Wed Sep 29 07:13:14 2004 UTC (8 years, 8 months ago) by rousseau
do not define parse_CFLAGS since AM_CPPFLAGS is already defined with the
same value

Revision 1228 - Directory Listing
Modified Wed Sep 8 20:48:30 2004 UTC (8 years, 9 months ago) by rousseau
ccid_open_hack(): do not use a null terminated C string for the
TPDU->APDU switch command since the command is NOT a C string

Revision 1227 - Directory Listing
Modified Wed Sep 8 20:45:19 2004 UTC (8 years, 9 months ago) by rousseau
CmdPowerOn(): do not use a null terminated C string for the EMV->ISO
switch command since the command is NOT a C string

Revision 1226 - Directory Listing
Modified Wed Sep 8 20:41:24 2004 UTC (8 years, 9 months ago) by rousseau
switch the Cherry xx33 reader in ISO mode if power up in EMV mode fails.
Thanks to St�phane Durand for the bug report.

Revision 1225 - Directory Listing
Modified Wed Sep 8 20:40:05 2004 UTC (8 years, 9 months ago) by rousseau
 #define CHERRYXX33     0x046A0005

Revision 1213 - Directory Listing
Modified Fri Sep 3 19:42:37 2004 UTC (8 years, 9 months ago) by rousseau
IFDHSetProtocolParameters(): return the result value of SetParameters()
in case of error instead of always IFD_COMMUNICATION_ERROR.

This will allow to return IFD_NOT_SUPPORTED in some cases and avoid a
PTS negociation failure (and card ignored) in pcscd.

Revision 1212 - Directory Listing
Modified Fri Sep 3 19:39:34 2004 UTC (8 years, 9 months ago) by rousseau
SetParameters(): returns IFD_NOT_SUPPORTED if the CCID error is "command
not supported".

Revision 1196 - Directory Listing
Modified Tue Aug 24 07:58:01 2004 UTC (8 years, 9 months ago) by rousseau
IFDHSetProtocolParameters(): the bmTCCKST bits shall be _set_ not cleared

Revision 1195 - Directory Listing
Modified Tue Aug 24 07:34:10 2004 UTC (8 years, 9 months ago) by rousseau
IFDHSetProtocolParameters(): we shall indicate the T=1 checksum used
(LRC/CRC) in the SetParameters() command

Revision 1194 - Directory Listing
Modified Tue Aug 24 07:32:27 2004 UTC (8 years, 9 months ago) by rousseau
t1_negociate_ifsd: the frame size is 5 only for LRC checksum. The
correct size is (4 + t1->rc_bytes)

Revision 1193 - Directory Listing
Modified Tue Aug 24 07:30:21 2004 UTC (8 years, 9 months ago) by rousseau
ReleaseReaderIndex: return 0 since the function is not void ()

Revision 1189 - Directory Listing
Modified Tue Aug 17 16:56:19 2004 UTC (8 years, 10 months ago) by rousseau
use the official doctype, public and system ids. Thanks to Ville Skytt�
and OpenCT

Revision 1185 - Directory Listing
Modified Sun Aug 15 19:08:51 2004 UTC (8 years, 10 months ago) by rousseau
use AM_CPPFLAGS = `pkg-config libpcsclite --cflags`

Revision 1160 - Directory Listing
Modified Fri Aug 6 13:29:00 2004 UTC (8 years, 10 months ago) by rousseau
try to IFDHCloseChannel() only if we opened at least one reader

Revision 1157 - Directory Listing
Modified Fri Aug 6 11:56:07 2004 UTC (8 years, 10 months ago) by rousseau
ccid_open_hack(): update the hack for the SCR331-DI contactless now we
use multi-slots

Revision 1156 - Directory Listing
Modified Fri Aug 6 11:32:01 2004 UTC (8 years, 10 months ago) by rousseau
IFDHICCPresence(): periodic debug message indicating the card presence/absence

Revision 1155 - Directory Listing
Modified Fri Aug 6 11:30:33 2004 UTC (8 years, 10 months ago) by rousseau
use a much cleaner way to check presence of a contactless card with a
multislot SCR331-DI reader

Revision 1154 - Directory Listing
Modified Fri Aug 6 11:25:46 2004 UTC (8 years, 10 months ago) by rousseau
IFDHICCPresence(): call get_ccid_descriptor() on reader_index instead of Lun

Revision 1153 - Directory Listing
Modified Fri Aug 6 11:23:59 2004 UTC (8 years, 10 months ago) by rousseau
FDHGetCapabilities() tag TAG_IFD_SLOT_THREAD_SAFE: Can NOT talk to
multiple slots at the same time (at least until it is fully validated)

Revision 1152 - Directory Listing
Modified Fri Aug 6 11:21:56 2004 UTC (8 years, 10 months ago) by rousseau
IFDHCreateChannel()/IFDHCreateChannelByName(): if the OpenPort() call
fails we ReleaseReaderIndex() and do not call ccid_open_hack()

Revision 1151 - Directory Listing
Modified Fri Aug 6 11:18:41 2004 UTC (8 years, 10 months ago) by rousseau
for multi-slots readers IFDHCreateChannel*()/OpenUSB is called for each
slot. If we are opening a new slot of an already opened reader we reuse
the same data (same libusb structures) and share the same pbSeq.

Revision 1150 - Directory Listing
Modified Fri Aug 6 11:13:25 2004 UTC (8 years, 10 months ago) by rousseau
use (*ccid_descriptor->pbSeq)++ instead of ccid_descriptor->bSeq++

Revision 1149 - Directory Listing
Modified Fri Aug 6 11:00:25 2004 UTC (8 years, 10 months ago) by rousseau
use pbSeq instead of bSeq

Revision 1148 - Directory Listing
Modified Fri Aug 6 10:57:06 2004 UTC (8 years, 10 months ago) by rousseau
replace "unsigned char bSeq" by "unsigned char *pbSeq" so that two slots
of a same reader can share the same sequence number

Revision 1147 - Directory Listing
Modified Fri Aug 6 10:19:48 2004 UTC (8 years, 10 months ago) by rousseau
use a dynamic timeout when reading the serial port.

The first timeout use when detecting the reader is 2 seconds to not wait
too long if no reader is connected. Later timeouts are set to 1 minute
to allow long time APDU.

Revision 1146 - Directory Listing
Modified Wed Aug 4 21:30:14 2004 UTC (8 years, 10 months ago) by rousseau
remove defaultFeatures management (was used for SCR331-DI hack)

Revision 1145 - Directory Listing
Modified Wed Aug 4 19:56:02 2004 UTC (8 years, 10 months ago) by rousseau
add "parse_CFLAGS = `pkg-config libpcsclite --cflags`" so that parse.c
can find and use <ifdhandler.h>

Revision 1144 - Directory Listing
Modified Wed Aug 4 19:53:34 2004 UTC (8 years, 10 months ago) by rousseau
do not use OpenUSB/CloseUSB but IFDHCreateChannel/IFDHCloseChannel to
use the ReaderIndex[] mechanism

Revision 1143 - Directory Listing
Modified Wed Aug 4 19:51:16 2004 UTC (8 years, 10 months ago) by rousseau
update copyright date (add 2004)

Revision 1142 - Directory Listing
Modified Wed Aug 4 19:50:45 2004 UTC (8 years, 10 months ago) by rousseau
LunToReaderIndex(): debug message when Lun is not found

Revision 1141 - Directory Listing
Modified Wed Aug 4 19:49:58 2004 UTC (8 years, 10 months ago) by rousseau
GetNewReaderIndex(): debug message when ReaderIndex[] is full

Revision 1140 - Directory Listing
Modified Wed Aug 4 19:48:33 2004 UTC (8 years, 10 months ago) by rousseau
GetNewReaderIndex(): store Lun in the first free ReaderIndex[] entry

Revision 1139 - Directory Listing
Modified Wed Aug 4 19:43:03 2004 UTC (8 years, 10 months ago) by rousseau
typo: Receivig -> Receiving

Revision 1138 - Directory Listing
Modified Wed Aug 4 19:42:18 2004 UTC (8 years, 10 months ago) by rousseau
PPS_Exchange(): do not recalculate the PPS length from the received PPS
but take it from the number of bytes actually received (it may not be
a PPS)

Revision 1107 - Directory Listing
Modified Wed Jul 28 08:36:57 2004 UTC (8 years, 10 months ago) by rousseau
use reader_index instead of lun as reader identification
allocate (in IFDHCreateChannel*) and release (in IFDHCloseChannel)

Revision 1106 - Directory Listing
Modified Wed Jul 28 08:33:18 2004 UTC (8 years, 10 months ago) by rousseau
use reader_index instead of lun as reader identification

Revision 1105 - Directory Listing
Modified Wed Jul 28 08:30:30 2004 UTC (8 years, 10 months ago) by rousseau
use a more complex Lun -> reader transformation
(Lun>>16) is not usable for multi-slots readers

Revision 1103 - Directory Listing
Modified Tue Jul 27 06:42:57 2004 UTC (8 years, 10 months ago) by rousseau
this code fails EMV test 1771-4 (should be a residue)

Revision 1102 - Directory Listing
Modified Mon Jul 26 13:41:14 2004 UTC (8 years, 10 months ago) by rousseau
- debug some cases
- add ISO 7816-3 rule number in comments

Revision 1101 - Directory Listing
Modified Mon Jul 26 09:16:16 2004 UTC (8 years, 10 months ago) by rousseau
initialise ccid.defaultFeatures field

Revision 1094 - Directory Listing
Modified Wed Jul 21 09:02:44 2004 UTC (8 years, 11 months ago) by rousseau
hack to support the SCR331-DI contactless interface

Revision 1093 - Directory Listing
Modified Wed Jul 21 09:01:11 2004 UTC (8 years, 11 months ago) by rousseau
ccid_open_hack(): detect and activate the contactless interface of the
SCR331-DI

Revision 1092 - Directory Listing
Modified Wed Jul 21 09:00:09 2004 UTC (8 years, 11 months ago) by rousseau
use bCurrentSlotIndex as the slot number in the CCID commands (instead of 0)

Revision 1091 - Directory Listing
Modified Wed Jul 21 08:59:28 2004 UTC (8 years, 11 months ago) by rousseau
initialise bMaxSlotIndex and ccid.bCurrentSlotIndex fields

Revision 1090 - Directory Listing
Modified Wed Jul 21 08:56:56 2004 UTC (8 years, 11 months ago) by rousseau
add defaultFeatures field for multislot readers with different
dwFeatures for each slot.

Revision 1089 - Directory Listing
Modified Wed Jul 21 08:56:16 2004 UTC (8 years, 11 months ago) by rousseau
add SCR331DI identification

Revision 1088 - Directory Listing
Modified Wed Jul 21 08:55:31 2004 UTC (8 years, 11 months ago) by rousseau
add bMaxSlotIndex and bCurrentSlotIndex fields to support multislot
readers (one USB device with two or more card readers)

Revision 1087 - Directory Listing
Modified Tue Jul 20 09:19:41 2004 UTC (8 years, 11 months ago) by rousseau
remove "|| sent_length" in "if (retries == 0 || sent_length)" since it
is an OpenCT code that should not be needed with the new automata.

Revision 1086 - Directory Listing
Modified Tue Jul 20 09:16:26 2004 UTC (8 years, 11 months ago) by rousseau
update the copyright, add my name to reflect the same change in OpenCT

Revision 1085 - Directory Listing
Modified Mon Jul 19 14:58:16 2004 UTC (8 years, 11 months ago) by rousseau
update IFDHControl() prototype to replace LPVOID by PUCHAR (prototype
changed in pcsc-lite-1.2.9-beta5)

Revision 1084 - Directory Listing
Modified Mon Jul 19 13:32:26 2004 UTC (8 years, 11 months ago) by rousseau
BUG: I forgot to initialise the t1.lun field. It failed to work with
more than one readers and a T=1 card in a TPDU reader.

Revision 1083 - Directory Listing
Modified Mon Jul 19 09:36:09 2004 UTC (8 years, 11 months ago) by rousseau
in resync: we set retries = 1 since when we return in the loop we have
retries--;
Without this retries goes negative and the test 'if (retries == 0)' will
not become true again before a looooong time.

Revision 1079 - Directory Listing
Modified Fri Jul 16 09:07:26 2004 UTC (8 years, 11 months ago) by rousseau
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.

Revision 1078 - Directory Listing
Modified Fri Jul 16 07:06:14 2004 UTC (8 years, 11 months ago) by rousseau
init_driver(): 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)

Revision 1077 - Directory Listing
Modified Fri Jul 16 06:53:25 2004 UTC (8 years, 11 months ago) by rousseau
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).

Revision 1076 - Directory Listing
Modified Fri Jul 16 06:31:15 2004 UTC (8 years, 11 months ago) by rousseau
BUG: CmdPowerOn(): use memmove() instead of memcpy() to copy the ATR
bytes since the source end destination buffers (with a more than 10
bytes long ATR) overlaps.

Bug spotted by splint http://www.splint.org/

Revision 1075 - Directory Listing
Modified Thu Jul 15 14:52:18 2004 UTC (8 years, 11 months ago) by rousseau
use "uint8_t *" instead of "unsigned char *" in the prototype of
t1_state_t.checksum field.

Revision 1074 - Directory Listing
Modified Thu Jul 15 14:51:03 2004 UTC (8 years, 11 months ago) by rousseau
initialise pcDesiredKey to NULL instead of 0

Revision 1073 - Directory Listing
Modified Thu Jul 15 14:08:52 2004 UTC (8 years, 11 months ago) by rousseau
BUG in CmdXfrBlockTPDU_T1(): the t1_transceive() returned value was
stored in an unsigned int and tested if < 0 (error case). Of course the
test was never true.

Revision 1071 - Directory Listing
Modified Thu Jul 15 09:31:04 2004 UTC (8 years, 11 months ago) by rousseau
remove a useless break; after a goto;

Revision 1070 - Directory Listing
Modified Thu Jul 15 09:19:11 2004 UTC (8 years, 11 months ago) by rousseau
in t1_transceive() and t1_negociate_ifsd() dad argument is unsigned.

Revision 1069 - Directory Listing
Modified Thu Jul 15 09:11:18 2004 UTC (8 years, 11 months ago) by rousseau
replace "unsigned char *" by "uint8_t *" to use the exact same prototype as in
the functions definition

Revision 1068 - Directory Listing
Modified Thu Jul 15 08:48:59 2004 UTC (8 years, 11 months ago) by rousseau
i2dw() is not used outside commands.c so declare it static

Revision 1066 - Directory Listing
Modified Thu Jul 15 08:33:37 2004 UTC (8 years, 11 months ago) by rousseau
CmdXfrBlockTPDU_T0() and CmdXfrBlockTPDU_T1() are internal functions so
declare them static

Revision 1065 - Directory Listing
Modified Thu Jul 15 08:30:24 2004 UTC (8 years, 11 months ago) by rousseau
atr tables are internal only so declare them static

Revision 1064 - Directory Listing
Modified Thu Jul 15 08:24:37 2004 UTC (8 years, 11 months ago) by rousseau
define internal functions as static

Revision 1063 - Directory Listing
Modified Thu Jul 15 07:26:40 2004 UTC (8 years, 11 months ago) by rousseau
remove unused functions

Revision 1062 - Directory Listing
Modified Sat Jul 10 13:46:20 2004 UTC (8 years, 11 months ago) by rousseau
change "previous_block[1]" in "previous_block[PCB]"

Revision 1061 - Directory Listing
Modified Sat Jul 10 13:32:15 2004 UTC (8 years, 11 months ago) by rousseau
remove unused struct ifd_protocol_ops

Revision 1060 - Directory Listing
Modified Sat Jul 10 13:23:12 2004 UTC (8 years, 11 months ago) by rousseau
IFD_PROTOCOL_MORE -> IFD_PROTOCOL_T1_MORE
IFD_PROTOCOL_STATE -> IFD_PROTOCOL_T1_STATE
renamed to be in line with OpenCT

Revision 1059 - Directory Listing
Modified Fri Jul 9 14:08:28 2004 UTC (8 years, 11 months ago) by rousseau
explicitely cast the returned value as (void) if we don't use it

Revision 1058 - Directory Listing
Modified Fri Jul 9 14:06:58 2004 UTC (8 years, 11 months ago) by rousseau
IFDHSetProtocolParameters(): test the return value of SetParameters()

Revision 1057 - Directory Listing
Modified Fri Jul 9 13:29:02 2004 UTC (8 years, 11 months ago) by rousseau
ccid_parse_interface_descriptor() is now static

Revision 1056 - Directory Listing
Modified Fri Jul 9 13:27:56 2004 UTC (8 years, 11 months ago) by rousseau
make channel variable (unsigned int) instead of (int)

Revision 1055 - Directory Listing
Modified Fri Jul 9 13:25:04 2004 UTC (8 years, 11 months ago) by rousseau
include <sys/types.h> so splint can parse the file

Revision 1054 - Directory Listing
Modified Fri Jul 9 13:23:37 2004 UTC (8 years, 11 months ago) by rousseau
mark potentially null values as /*@null@*/ for splint

Revision 1053 - Directory Listing
Modified Fri Jul 9 13:21:44 2004 UTC (8 years, 11 months ago) by rousseau
mark unused arguments as /*@unused@*/ for splint

Revision 1052 - Directory Listing
Modified Fri Jul 9 13:19:09 2004 UTC (8 years, 11 months ago) by rousseau
include <sys/types.h> so splint can parse the file

Revision 1051 - Directory Listing
Modified Fri Jul 9 08:45:21 2004 UTC (8 years, 11 months ago) by rousseau
the buffer var_text[] was, in fact, used outside its declaration

Revision 1050 - Directory Listing
Modified Fri Jul 9 08:40:15 2004 UTC (8 years, 11 months ago) by rousseau
ReadChunk() and get_bytes() are internal use in ccid_serial.c so declare
them static

Revision 1049 - Directory Listing
Modified Fri Jul 9 08:28:44 2004 UTC (8 years, 11 months ago) by rousseau
lun is (unsigned int) so reader = LunToReaderIndex(lun) is also (unsigned int)

Revision 1048 - Directory Listing
Modified Fri Jul 9 08:25:51 2004 UTC (8 years, 11 months ago) by rousseau
OpenSerialByName(): arguments of CmdEscape() are unsigned

Revision 1047 - Directory Listing
Modified Fri Jul 9 08:22:24 2004 UTC (8 years, 11 months ago) by rousseau
replace "121234" by "123456" to make it more clear it is a memory reservation
for 6 characters

Revision 1046 - Directory Listing
Modified Fri Jul 9 08:21:07 2004 UTC (8 years, 11 months ago) by rousseau
remove a unneeded cast in (int)lun

Revision 1045 - Directory Listing
Modified Fri Jul 9 08:18:17 2004 UTC (8 years, 11 months ago) by rousseau
allow splint to continue parsing after use of type fd_set

Revision 1044 - Directory Listing
Modified Fri Jul 9 08:11:11 2004 UTC (8 years, 11 months ago) by rousseau
ReadSerial(): the unknown card movement byte is in "c" not "buffer[3]"

Revision 1043 - Directory Listing
Modified Fri Jul 9 07:10:17 2004 UTC (8 years, 11 months ago) by rousseau
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

Revision 1023 - Directory Listing
Modified Fri Jul 2 14:12:36 2004 UTC (8 years, 11 months ago) by rousseau
replace VENDOR pattern by MAGIC_VENDOR since we also have a VENDOR in
IOCTL_SMARTCARD_VENDOR_IFD_EXCHANGE and then a collision.

same change for PRODUCT and FRIENDLYNAME to be homogenous.

Revision 1022 - Directory Listing
Modified Fri Jul 2 13:58:11 2004 UTC (8 years, 11 months ago) by rousseau
OpenSerialByName(): perform a command (get the reader firmware) to be
sure a GemPC Twin (serial or pcmcia) reader is connected

Revision 1021 - Directory Listing
Modified Fri Jul 2 12:06:44 2004 UTC (8 years, 11 months ago) by rousseau
present where the files come from and what I did

Revision 1017 - Directory Listing
Modified Thu Jul 1 11:37:27 2004 UTC (8 years, 11 months ago) by rousseau
 #define IFD_PARITY_ERROR

Revision 1013 - Directory Listing
Modified Wed Jun 30 14:44:16 2004 UTC (8 years, 11 months ago) by rousseau
rename tokenparser_macosx.? in tokenparser_fake.?

Revision 1010 - Directory Listing
Modified Wed Jun 30 14:41:18 2004 UTC (8 years, 11 months ago) by rousseau
LGPL licence

Revision 1008 - Directory Listing
Modified Wed Jun 30 14:05:38 2004 UTC (8 years, 11 months ago) by rousseau
PPS_Match() was wrong when the confirmation is shorter than the request

Revision 1007 - Directory Listing
Modified Wed Jun 30 14:02:54 2004 UTC (8 years, 11 months ago) by rousseau
PPS_Exchange() has a new argument (unsigned char *pps1) which is the
PPS1 returned by the card (TA1 the card wants to use)

Revision 1006 - Directory Listing
Modified Wed Jun 30 14:00:19 2004 UTC (8 years, 11 months ago) by rousseau
CCID_Transmit() now uses a 4th argument (unsigned char bBWI)

Revision 1005 - Directory Listing
Modified Wed Jun 30 13:57:33 2004 UTC (8 years, 11 months ago) by rousseau
move macros PPS_HAS_PPS?() from pps.c to pps.h

Revision 1004 - Directory Listing
Modified Wed Jun 30 13:54:57 2004 UTC (8 years, 11 months ago) by rousseau
add ATR_GetDefaultProtocol() function

Revision 1003 - Directory Listing
Modified Wed Jun 30 13:53:41 2004 UTC (8 years, 11 months ago) by rousseau
remove unused functions

Revision 1002 - Directory Listing
Modified Wed Jun 30 13:51:23 2004 UTC (8 years, 11 months ago) by rousseau
the atr_f_table[] and atr_d_table[] tables were partly wrong

Revision 1001 - Directory Listing
Modified Wed Jun 30 13:49:38 2004 UTC (8 years, 11 months ago) by rousseau
- update the text
- the function ATR_GetDefaultProtocol() is mine (Ludovic Rousseau)

Revision 1000 - Directory Listing
Modified Wed Jun 30 13:46:45 2004 UTC (8 years, 11 months ago) by rousseau
remove MIN() and MAX() definitions

Revision 999 - Directory Listing
Modified Wed Jun 30 13:42:23 2004 UTC (8 years, 11 months ago) by rousseau
if DEBUG_LEVEL_PERIODIC is not set we temporaily remove DEBUG_LEVEL_COMM in
IFDHICCPresence() to avoid having the low level debug every time pcscd
test the card presence

Revision 998 - Directory Listing
Modified Wed Jun 30 13:40:12 2004 UTC (8 years, 11 months ago) by rousseau
- removed CardUp() and CardDown()
- all the reader initialisation/negotiation is now done in
  IFDHSetProtocolParameters() (that's why you need pcsc-lite-1.2.9beta3)

Revision 997 - Directory Listing
Modified Wed Jun 30 13:30:45 2004 UTC (8 years, 11 months ago) by rousseau
pcsclite.h moved in PCSC/

Revision 996 - Directory Listing
Modified Wed Jun 30 13:30:04 2004 UTC (8 years, 11 months ago) by rousseau
the t1 field in struct CCID_DESC changed from Protocol_T1 (towitiko) to
t1_state_t (openct)

Revision 995 - Directory Listing
Modified Wed Jun 30 13:28:22 2004 UTC (8 years, 11 months ago) by rousseau
we do not need to have PACKAGE defined (I do not remember what it was
used for)

Revision 994 - Directory Listing
Modified Wed Jun 30 13:25:03 2004 UTC (8 years, 11 months ago) by rousseau
CmdXfrBlockTPDU_T1(): use the T=1 TPDU layer from opensc/ instead of towitoko/

Revision 993 - Directory Listing
Modified Wed Jun 30 13:23:42 2004 UTC (8 years, 11 months ago) by rousseau
CCID_Receive() returns IFD_PARITY_ERROR if the error returned by the
reader is 0xFD (parity error) and IFD_COMMUNICATION_ERROR otherwise (so
that the T=1 TPDU layer can recover the error)

Revision 992 - Directory Listing
Modified Wed Jun 30 13:21:18 2004 UTC (8 years, 11 months ago) by rousseau
CCID_Transmit() now has a new "unsigned char bBWI" argument

Revision 991 - Directory Listing
Modified Wed Jun 30 11:53:51 2004 UTC (8 years, 11 months ago) by rousseau
CmdPowerOn(): add a mechanism to allow power on at 1.8V, 3V and then 5V
as specified by ISO 7816. We still use 5V for now to avoid problems with
non ISO compliant cards

Revision 990 - Directory Listing
Modified Wed Jun 30 11:52:19 2004 UTC (8 years, 11 months ago) by rousseau
add __FUNCTION__ as argument to ccid_error()

Revision 989 - Directory Listing
Modified Wed Jun 30 09:43:45 2004 UTC (8 years, 11 months ago) by rousseau
ccid_error() now also has a "char *function" argument to log the name of
the function in which the error occured

Revision 988 - Directory Listing
Modified Wed Jun 30 09:42:26 2004 UTC (8 years, 11 months ago) by rousseau
- rename protocol_t1/ in towitoko/ to reflect the project the code comes from
- remove the now useless files from towitoko/ and add the files from openct/

Revision 987 - Directory Listing
Modified Wed Jun 30 09:40:21 2004 UTC (8 years, 11 months ago) by rousseau
remove these files since I now use the T=1 TPDU code from OpenCT

Revision 986 - Directory Listing
Modified Wed Jun 30 09:37:08 2004 UTC (8 years, 11 months ago) by rousseau
use T=1 TPDU code from the OpenCT project <http://www.opensc.org/>

The state automata was greatly improved to manage "all" the possible
errors cases.

Revision 985 - Directory Listing
Modified Wed Jun 30 09:34:19 2004 UTC (8 years, 11 months ago) by rousseau
document the possible values for ifdLogLevel and ifdDriverOptions

Revision 905 - Directory Listing
Modified Wed May 26 08:56:52 2004 UTC (9 years ago) by rousseau
set *rx_length to 0 when a ReadPort() error is returned.
The problem was not solved by ccid_usb.c 1.25.

Revision 904 - Directory Listing
Modified Wed May 26 07:50:07 2004 UTC (9 years ago) by rousseau
bPINOperation is not passed in the user command since the command is
"PIN Verification" and nothing else

Revision 900 - Directory Listing
Modified Tue May 25 14:46:02 2004 UTC (9 years ago) by rousseau
add support for SCardGetAttrib(.., IOCTL_SMARTCARD_VENDOR_VERIFY_PIN, ..)
to know if the reader supports SCardControl(.., IOCTL_SMARTCARD_VENDOR_VERIFY_PIN, ..)

Revision 895 - Directory Listing
Modified Tue May 25 08:23:20 2004 UTC (9 years ago) by rousseau
set length to 0 when a usb_bulk_read() error is returned

Revision 894 - Directory Listing
Modified Tue May 25 06:52:05 2004 UTC (9 years ago) by rousseau
install Info.plist before the lib. This is for my convenience only
because of my debug setup.

Revision 893 - Directory Listing
Modified Tue May 25 06:50:24 2004 UTC (9 years ago) by rousseau
rename tokenparser_macosx.l into tokenparser_fake.l since it is not
MacOSX specific.

Revision 892 - Directory Listing
Modified Mon May 24 12:58:43 2004 UTC (9 years ago) by rousseau
recompile using gcc -pedantic and correct:
- some C++ syntax comments
- many signedness "problems"

Revision 891 - Directory Listing
Modified Mon May 24 10:02:48 2004 UTC (9 years ago) by rousseau
add support for Secure PIN through SCardControl() (see sample code in examples/)

Revision 890 - Directory Listing
Modified Mon May 24 09:58:43 2004 UTC (9 years ago) by rousseau
- add some missing error codes
- low error values indicate the byte in error in the CCID frame

Revision 882 - Directory Listing
Modified Tue May 18 14:02:55 2004 UTC (9 years, 1 month ago) by rousseau
in CardUp():SetParameters() the default TA1 is 0x11

Revision 881 - Directory Listing
Modified Mon May 17 14:46:12 2004 UTC (9 years, 1 month ago) by rousseau
add default ifdDriverOptions set to 0x0000

Revision 880 - Directory Listing
Modified Mon May 17 14:45:44 2004 UTC (9 years, 1 month ago) by rousseau
- add support of IOCTL_SMARTCARD_VENDOR_IFD_EXCHANGE in IFDHControl()
- read ifdDriverOptions from Info.plist to limit the use of
  IOCTL_SMARTCARD_VENDOR_IFD_EXCHANGE (idea from Peter Williams)

Revision 879 - Directory Listing
Modified Mon May 17 14:39:22 2004 UTC (9 years, 1 month ago) by rousseau
redefined CmdEscape() to pass the CCID message instead of just a tag

Revision 878 - Directory Listing
Modified Mon May 17 14:37:08 2004 UTC (9 years, 1 month ago) by rousseau
do not export get_end_points() declaration and make the function static

Revision 877 - Directory Listing
Modified Mon May 17 14:35:51 2004 UTC (9 years, 1 month ago) by rousseau
reorganize header files

Revision 875 - Directory Listing
Modified Mon May 17 13:53:10 2004 UTC (9 years, 1 month ago) by rousseau
types and definitions are now in <pcsclite.h>, "defs.h" and "ccid_ifdhandler.h"

Revision 874 - Directory Listing
Modified Mon May 17 13:14:57 2004 UTC (9 years, 1 month ago) by rousseau
removed since pcsclite.h now defines SCARD_ATTR_*

Revision 873 - Directory Listing
Modified Mon May 17 13:00:12 2004 UTC (9 years, 1 month ago) by rousseau
use the ifdhandler.h provided by pcsc-lite so remove a lot of lines

Revision 840 - Directory Listing
Modified Mon May 10 07:52:57 2004 UTC (9 years, 1 month ago) by rousseau
in IFDHPowerICC() IFD_POWER_DOWN is just power down without a power up.
Changed to be compliant with IFD Handler specifications.

Revision 837 - Directory Listing
Modified Fri May 7 12:20:18 2004 UTC (9 years, 1 month ago) by rousseau
in Protocol_T1_Negociate_IFSD() rename sblock in block since the same
variable is used for sent and received block.
This was not clear and was the source of reported bug [ #300707 ]
"Delete block before using it in t1_protocol.c" which is not a bug in fact.

Revision 808 - Directory Listing
Modified Mon Apr 19 16:21:53 2004 UTC (9 years, 2 months ago) by rousseau
add winsmcrd.h in COMMON

Revision 807 - Directory Listing
Modified Mon Apr 19 16:18:43 2004 UTC (9 years, 2 months ago) by rousseau
reset ATR string (length = 0) when the card is powered down or not present

Revision 806 - Directory Listing
Modified Mon Apr 19 16:18:00 2004 UTC (9 years, 2 months ago) by rousseau
typo in a comment

Revision 805 - Directory Listing
Modified Mon Apr 19 16:11:05 2004 UTC (9 years, 2 months ago) by rousseau
list of tags for SCardGetAttrib() like SCARD_ATTR_ATR_STRING

Revision 804 - Directory Listing
Modified Mon Apr 19 16:09:24 2004 UTC (9 years, 2 months ago) by rousseau
add SCARD_ATTR_ATR_STRING in addition to TAG_IFD_ATR in IFDHGetCapabilities()

Revision 795 - Directory Listing
Modified Fri Apr 16 15:22:02 2004 UTC (9 years, 2 months ago) by rousseau
new IFDHControl() API

Revision 794 - Directory Listing
Modified Fri Apr 16 15:21:34 2004 UTC (9 years, 2 months ago) by rousseau
use a new version from pcsc-lite with support of the new IFDHControl() API

Revision 781 - Directory Listing
Modified Thu Apr 8 14:35:57 2004 UTC (9 years, 2 months ago) by rousseau
add support for the libusb naming scheme: usb:%04x/%04x:libusb:%s

Revision 779 - Directory Listing
Modified Thu Apr 8 09:46:54 2004 UTC (9 years, 2 months ago) by rousseau
parse bPINSupport field

Revision 776 - Directory Listing
Modified Tue Apr 6 13:25:28 2004 UTC (9 years, 2 months ago) by rousseau
define default ifdLogLevel at 3 (DEBUG_LEVEL_CRITICAL | DEBUG_LEVEL_INFO)

Revision 775 - Directory Listing
Modified Tue Apr 6 13:18:11 2004 UTC (9 years, 2 months ago) by rousseau
remove now useless #ifdef DEBUG

Revision 774 - Directory Listing
Modified Tue Apr 6 13:15:34 2004 UTC (9 years, 2 months ago) by rousseau
add { } to avoid ambiguities now that DEBUG_* are "if (x) y" constructions

Revision 773 - Directory Listing
Modified Tue Apr 6 13:14:02 2004 UTC (9 years, 2 months ago) by rousseau
during the first IFDHCreateChannel*() init_debug() is called to read the
value of ifdLogLevel from the Info.plist

Revision 772 - Directory Listing
Modified Tue Apr 6 13:09:59 2004 UTC (9 years, 2 months ago) by rousseau
change the DEBUG_* macros from static (compilation conditional) to
dynamic (if ())

Revision 771 - Directory Listing
Modified Tue Apr 6 13:07:45 2004 UTC (9 years, 2 months ago) by rousseau
debug.c is only needed by parse_SOURCES not COMMON

Revision 770 - Directory Listing
Modified Tue Apr 6 08:59:26 2004 UTC (9 years, 2 months ago) by rousseau
do not return before pthread_mutex_unlock() in IFDHCreateChannelByName()

Revision 769 - Directory Listing
Modified Tue Apr 6 08:53:05 2004 UTC (9 years, 2 months ago) by rousseau
also call ccid_open_hack() in IFDHCreateChannelByName()

Revision 768 - Directory Listing
Modified Tue Apr 6 08:51:34 2004 UTC (9 years, 2 months ago) by rousseau
T=1 context is initialized in CardUp(), not in IFDHCreateChannel()

Revision 766 - Directory Listing
Modified Tue Apr 6 06:52:34 2004 UTC (9 years, 2 months ago) by rousseau
revert to nearly previous version.
- IFD_POWER_DOWN is power down and power up (cold reset)
- IFD_RESET is power up (warm reset)
- IFD_POWER_UP is power up

Revision 762 - Directory Listing
Modified Mon Apr 5 09:47:21 2004 UTC (9 years, 2 months ago) by rousseau
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 */

Revision 755 - Directory Listing
Modified Wed Mar 31 14:58:43 2004 UTC (9 years, 2 months ago) by rousseau
use $(srcdir) instead of ".". Thanks to Dr Russel Winder for the patch.

Revision 738 - Directory Listing
Modified Tue Mar 30 13:01:05 2004 UTC (9 years, 2 months ago) by rousseau
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.

Revision 737 - Directory Listing
Modified Tue Mar 30 12:45:26 2004 UTC (9 years, 2 months ago) by rousseau
- use get_ccid_usb_interface() to also manage USB composite devices (keyboards)
- continue parsing even if bDescriptorType == 0xFF (proprietary)

Revision 736 - Directory Listing
Modified Tue Mar 30 12:43:20 2004 UTC (9 years, 2 months ago) by rousseau
define get_ccid_usb_interface() only if __USB_H__ is defined (usb.h included)

Revision 716 - Directory Listing
Modified Thu Mar 18 10:35:53 2004 UTC (9 years, 3 months ago) by rousseau
Reset action is power off and power on, not just power on

Revision 700 - Directory Listing
Modified Sat Feb 14 12:26:09 2004 UTC (9 years, 4 months ago) by rousseau
disribute create_Info_plist.pl

Revision 696 - Directory Listing
Modified Thu Feb 12 16:11:45 2004 UTC (9 years, 4 months ago) by rousseau
huge rework of CardUp()

Revision 695 - Directory Listing
Modified Thu Feb 12 16:11:08 2004 UTC (9 years, 4 months ago) by rousseau
return with a error if the received bloc in less than 4 bytes (T=0
error response for example)

Revision 694 - Directory Listing
Modified Thu Feb 12 16:09:32 2004 UTC (9 years, 4 months ago) by rousseau
fill dwDefaultClock and dwMaxDataRate according to the reader descriptor

Revision 693 - Directory Listing
Modified Thu Feb 12 16:08:45 2004 UTC (9 years, 4 months ago) by rousseau
add dwDefaultClock and dwMaxDataRate fields

Revision 692 - Directory Listing
Modified Wed Feb 11 14:36:59 2004 UTC (9 years, 4 months ago) by rousseau
Perform PPS and IFSD only if the reader does not do it automatically

Revision 691 - Directory Listing
Modified Wed Feb 11 14:36:59 2004 UTC (9 years, 4 months ago) by rousseau
add CCID_CLASS_AUTO_BAUD and CCID_CLASS_AUTO_IFSD

Revision 690 - Directory Listing
Modified Wed Feb 11 14:36:05 2004 UTC (9 years, 4 months ago) by rousseau
add return code tests in Protocol_T1_Negociate_IFSD()

Revision 689 - Directory Listing
Modified Wed Feb 11 14:33:04 2004 UTC (9 years, 4 months ago) by rousseau
PPS_Exchange() now uses 'int lun' instead of 'Protocol_T1 * t1'

Revision 688 - Directory Listing
Modified Wed Feb 11 10:12:47 2004 UTC (9 years, 4 months ago) by rousseau
remove debug message

Revision 687 - Directory Listing
Modified Wed Feb 11 10:12:00 2004 UTC (9 years, 4 months ago) by rousseau
use Protocol_T1_Negociate_IFSD() in CardUp()

Revision 686 - Directory Listing
Modified Wed Feb 11 10:10:29 2004 UTC (9 years, 4 months ago) by rousseau
add Protocol_T1_Negociate_IFSD()

Revision 685 - Directory Listing
Modified Wed Feb 11 10:09:55 2004 UTC (9 years, 4 months ago) by rousseau
add CCID_CLASS_AUTO_CONF_ATR

Revision 683 - Directory Listing
Modified Mon Feb 9 13:57:14 2004 UTC (9 years, 4 months ago) by rousseau
first bSeq is 0 (even if 1 works ok)

Revision 682 - Directory Listing
Modified Mon Feb 9 13:55:09 2004 UTC (9 years, 4 months ago) by rousseau
usb_reset() the device before usb_close()

Revision 676 - Directory Listing
Modified Wed Feb 4 22:00:01 2004 UTC (9 years, 4 months ago) by rousseau
DEBUG_COMM4 was named DEBUG_COMM3 due to cut-n-paste

Revision 673 - Directory Listing
Modified Tue Feb 3 15:44:52 2004 UTC (9 years, 4 months ago) by rousseau
add CardUp() and CardDown() for PowerOn and PowerOff actions

Revision 672 - Directory Listing
Modified Tue Feb 3 15:43:51 2004 UTC (9 years, 4 months ago) by rousseau
add dwMaxIFSD field

Revision 671 - Directory Listing
Modified Tue Feb 3 15:42:53 2004 UTC (9 years, 4 months ago) by rousseau
add DEBUG_COMM3()

Revision 670 - Directory Listing
Modified Tue Feb 3 15:42:24 2004 UTC (9 years, 4 months ago) by rousseau
use my own debug routines

Revision 668 - Directory Listing
Modified Mon Feb 2 15:45:14 2004 UTC (9 years, 4 months ago) by rousseau
do not restrict ifsc to Towitoko

Revision 667 - Directory Listing
Modified Mon Feb 2 15:44:08 2004 UTC (9 years, 4 months ago) by rousseau
remove PPS hack

Revision 665 - Directory Listing
Modified Mon Feb 2 10:05:34 2004 UTC (9 years, 4 months ago) by rousseau
use create_Info_plist.pl to generate the installed Info.plist from an
Info.plist template and a list of supported readers.

Revision 663 - Directory Listing
Modified Thu Jan 29 13:37:35 2004 UTC (9 years, 4 months ago) by rousseau
removed useless function name in debug messages since we use __FUNCTION__

Revision 662 - Directory Listing
Modified Thu Jan 29 10:33:52 2004 UTC (9 years, 4 months ago) by rousseau
- remove device_name[] from struct _usbDevice
- use naming scheme usb:vendor/product
- simplify (a bit) the code

Revision 661 - Directory Listing
Modified Thu Jan 29 10:32:20 2004 UTC (9 years, 4 months ago) by rousseau
remore *device_name[] argument from get_desc()

Revision 660 - Directory Listing
Modified Thu Jan 29 10:31:15 2004 UTC (9 years, 4 months ago) by rousseau
add DEBUG_CRITICAL4

Revision 659 - Directory Listing
Modified Tue Jan 27 15:01:08 2004 UTC (9 years, 4 months ago) by rousseau
set received size to 0 in case of error in CmdXfrBlockTPDU_T1

Revision 658 - Directory Listing
Modified Tue Jan 27 14:59:16 2004 UTC (9 years, 4 months ago) by rousseau
in case of error exits CCID_Receive() without copying an nonexistent anwser

Revision 655 - Directory Listing
Modified Tue Jan 27 14:46:01 2004 UTC (9 years, 4 months ago) by rousseau
use DEBUG_CRITICAL2() instead of DEBUG_CRITICAL()

Revision 652 - Directory Listing
Modified Tue Jan 27 13:45:41 2004 UTC (9 years, 4 months ago) by rousseau
ignore some build files

Revision 651 - Directory Listing
Modified Tue Jan 27 13:40:29 2004 UTC (9 years, 4 months ago) by rousseau
add Silitek SK-3105 keyboard

Revision 650 - Directory Listing
Modified Tue Jan 27 13:39:47 2004 UTC (9 years, 4 months ago) by rousseau
add support of USB devices with multiple interfaces (like the Silitek
SK-3105 keyboard)

Revision 649 - Directory Listing
Modified Tue Jan 27 13:32:55 2004 UTC (9 years, 4 months ago) by rousseau
add support of IFDHCreateChannelByName

Revision 641 - Directory Listing
Modified Thu Jan 22 14:00:38 2004 UTC (9 years, 4 months ago) by rousseau
move rules for src/protocol_t1/ files in src/Makefile.am to avoid
building a (problematic) static library

Revision 640 - Directory Listing
Modified Thu Jan 22 13:59:24 2004 UTC (9 years, 4 months ago) by rousseau
removed since rules for src/protocol_t1/ files are in src/Makefile.am

Revision 620 - Directory Listing
Modified Thu Jan 15 15:41:31 2004 UTC (9 years, 5 months ago) by rousseau
define APDU_Cmd and APDU_Rsp

Revision 619 - Directory Listing
Modified Thu Jan 15 14:34:21 2004 UTC (9 years, 5 months ago) by rousseau
new files from Carlos Prados towitoko-2.0.7 driver (with a bit of hacking)

Revision 618 - Directory Listing
Modified Thu Jan 15 14:23:41 2004 UTC (9 years, 5 months ago) by rousseau
build protocol_t1 library

Revision 617 - Directory Listing
Modified Thu Jan 15 14:19:02 2004 UTC (9 years, 5 months ago) by rousseau
add SetParameters() CCID command

Revision 616 - Directory Listing
Modified Thu Jan 15 14:10:13 2004 UTC (9 years, 5 months ago) by rousseau
add support of T=1 in TPDU mode

Revision 615 - Directory Listing
Modified Thu Jan 15 14:09:38 2004 UTC (9 years, 5 months ago) by rousseau
add CcidDesc.t1 field

Revision 614 - Directory Listing
Modified Thu Jan 15 14:09:10 2004 UTC (9 years, 5 months ago) by rousseau
replace CmdXfrBlockTPDU() by CmdXfrBlockTPDU_T0() and CmdXfrBlockTPDU_T1()

Revision 613 - Directory Listing
Modified Thu Jan 15 13:51:40 2004 UTC (9 years, 5 months ago) by rousseau
split CmdXfrBlockShortAPDU() in CCID_Transmit() and CCID_Receive()

Revision 612 - Directory Listing
Modified Thu Jan 15 13:45:37 2004 UTC (9 years, 5 months ago) by rousseau
call ccid_open_hack() in IFDHCreateChannel() instead of in each OpenPort()

Revision 611 - Directory Listing
Modified Thu Jan 15 13:41:01 2004 UTC (9 years, 5 months ago) by rousseau
use an (int *) instead of a PDWORD for rx_length argument

Revision 609 - Directory Listing
Modified Thu Jan 15 08:34:20 2004 UTC (9 years, 5 months ago) by rousseau
add get_ccid_slot() function

Revision 608 - Directory Listing
Modified Thu Jan 15 08:30:31 2004 UTC (9 years, 5 months ago) by rousseau
remove function name from debug message since __FUNCTION__ is now used in
DEBUG_* macro definition

Revision 607 - Directory Listing
Modified Thu Jan 15 08:19:03 2004 UTC (9 years, 5 months ago) by rousseau
add ActivCard

Revision 581 - Directory Listing
Modified Tue Jan 6 07:21:27 2004 UTC (9 years, 5 months ago) by rousseau
the USB extra field length shall be exactly 54 bytes to be CCID.

Revision 580 - Directory Listing
Modified Mon Jan 5 21:22:03 2004 UTC (9 years, 5 months ago) by rousseau
also print the function name (__FUNCTION__) in the debug messages

Revision 579 - Directory Listing
Modified Mon Jan 5 20:53:59 2004 UTC (9 years, 5 months ago) by rousseau
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).

Revision 578 - Directory Listing
Modified Fri Dec 19 09:03:49 2003 UTC (9 years, 6 months ago) by rousseau
build but do not install the serial ccidtwin driver by default since it
is useless on computers without a serial port or without this reader for
example.

Revision 570 - Directory Listing
Modified Tue Dec 16 10:11:09 2003 UTC (9 years, 6 months ago) by rousseau
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.

Revision 569 - Directory Listing
Modified Fri Dec 12 09:38:25 2003 UTC (9 years, 6 months ago) by rousseau
return IFD_NOT_SUPPORTED instead of IFD_SUCCESS in functions doing
nothing (yet) (IFDHSetCapabilities, IFDHSetProtocolParameters,
IFDHControl);

Revision 568 - Directory Listing
Modified Thu Dec 11 21:19:46 2003 UTC (9 years, 6 months ago) by rousseau
set the result buffer length to 0 in IFDHControl()

Revision 564 - Directory Listing
Modified Tue Nov 25 23:07:33 2003 UTC (9 years, 6 months ago) by rousseau
add a --enable-ccidtwindir argument to ./configure to specify the
serial GemPC Twin installation directory

Revision 563 - Directory Listing
Modified Tue Nov 25 22:55:58 2003 UTC (9 years, 6 months ago) by rousseau
use a updated version of acx_pthread.m4 needed for FreeBSD

Revision 550 - Directory Listing
Modified Tue Nov 4 21:57:19 2003 UTC (9 years, 7 months ago) by rousseau
comment out the automatic GET RESPONSE part. I don't think it should be
in the driver. Maybe in pcscd instead?

Revision 544 - Directory Listing
Modified Sat Nov 1 00:39:42 2003 UTC (9 years, 7 months ago) by rousseau
$(CCID_BUNDLE) is a directory so use 'rm -r' in uninstall_ccid: target

Revision 543 - Directory Listing
Modified Fri Oct 31 23:55:18 2003 UTC (9 years, 7 months ago) by rousseau
modify the hack to compile under MacOSX.

Revision 531 - Directory Listing
Modified Wed Oct 29 18:06:08 2003 UTC (9 years, 7 months ago) by rousseau
add USB identification for SPR 532

Revision 529 - Directory Listing
Modified Wed Oct 29 18:01:23 2003 UTC (9 years, 7 months ago) by rousseau
continue parsing even if bInterfaceSubClass and bInterfaceProtocol are
unsupported. This may be the case with non "real" CCID readers.

Revision 528 - Directory Listing
Modified Wed Oct 29 17:54:04 2003 UTC (9 years, 7 months ago) by rousseau
do not exit if the InterfaceClass is 0xFF (proprietary). It is the case
with old readers manufactured before the final release of the CCID specs.

Revision 525 - Directory Listing
Modified Tue Oct 28 18:18:11 2003 UTC (9 years, 7 months ago) by rousseau
correctly use the device name in a debug message instead of a not yet initialised field.

Revision 522 - Directory Listing
Modified Tue Oct 28 16:51:37 2003 UTC (9 years, 7 months ago) by rousseau
correct a stupid bug that occurs with an APDU with 2 bytes response.

Revision 464 - Directory Listing
Modified Mon Sep 22 14:26:02 2003 UTC (9 years, 8 months ago) by rousseau
define TAG_IFD_THREAD_SAFE introduced in pcsclite-1.2.0-rc3

Revision 463 - Directory Listing
Modified Mon Sep 22 14:25:19 2003 UTC (9 years, 8 months ago) by rousseau
add support of thread safe (APDU multiplexing on different readers)

Revision 462 - Directory Listing
Modified Mon Sep 22 14:24:26 2003 UTC (9 years, 8 months ago) by rousseau
ReadChunk() realy reads up to min_length bytes. Add some debug messages
in the state automata.

Revision 461 - Directory Listing
Modified Mon Sep 22 14:22:51 2003 UTC (9 years, 8 months ago) by rousseau
modify install rules so that root can use them even over NFS where root is
nobody

Revision 453 - Directory Listing
Modified Fri Sep 19 12:08:09 2003 UTC (9 years, 9 months ago) by rousseau
complete reimplementation of the Twin serial protocol using a finite
state automata (code much simpler)

Revision 445 - Directory Listing
Modified Tue Sep 16 14:19:11 2003 UTC (9 years, 9 months ago) by rousseau
Do not switch to APDU mode since it also swicth in EMV mode and may not
work with non EMV cards

Revision 444 - Directory Listing
Modified Tue Sep 16 14:18:42 2003 UTC (9 years, 9 months ago) by rousseau
honor DESTDIR in install rules (closes [ #300110 ])

Revision 420 - Directory Listing
Modified Wed Sep 10 09:52:21 2003 UTC (9 years, 9 months ago) by rousseau
config.h is now generated by ./configure

Revision 414 - Directory Listing
Modified Wed Sep 10 09:17:43 2003 UTC (9 years, 9 months ago) by rousseau
manage serial protocol used by the GemPC Twin. Thanks to Niki W. Waibel
for a working prototype.

Revision 413 - Directory Listing
Modified Wed Sep 10 09:15:51 2003 UTC (9 years, 9 months ago) by rousseau
contains common CCID feature for USB and serial (was in ccid_usb before)

Revision 412 - Directory Listing
Modified Wed Sep 10 09:14:41 2003 UTC (9 years, 9 months ago) by rousseau
used to generate a correct reader.conf with the real library name

Revision 411 - Directory Listing
Modified Wed Sep 10 09:13:42 2003 UTC (9 years, 9 months ago) by rousseau
remove IFDSetEmv() definition. It is now useless.

Revision 410 - Directory Listing
Modified Wed Sep 10 09:12:20 2003 UTC (9 years, 9 months ago) by rousseau
use OpenPort instead of OpenUSB. move the complex TPDU management in
commands.c (and use it only if reader does not support APDU mode)

Revision 409 - Directory Listing
Modified Wed Sep 10 09:10:28 2003 UTC (9 years, 9 months ago) by rousseau
transport abstraction: define OpenPort, ClosePort, etc. to OpenSerial or
OpenUSB depending on TWIN_SERIAL compilation option

Revision 408 - Directory Listing
Modified Wed Sep 10 09:09:12 2003 UTC (9 years, 9 months ago) by rousseau
test for PACKAGE and not __CONFIG_H__ since the config.h file is not
generated by ./configure

Revision 407 - Directory Listing
Modified Wed Sep 10 09:06:41 2003 UTC (9 years, 9 months ago) by rousseau
- support auto voltage at power on if reader support it
- support Gemplus proprietary command to switch reader from TPDU to APDU mode
- use APDU mode if reader support it. make it easy to support extended
  APDU but I have no reader to test this.

Revision 406 - Directory Listing
Modified Wed Sep 10 09:01:30 2003 UTC (9 years, 9 months ago) by rousseau
redesign to separate communication media and CCID protocol. call
ccid_open_hack() upon open to do some reader dependent magic.

Revision 405 - Directory Listing
Modified Wed Sep 10 08:57:29 2003 UTC (9 years, 9 months ago) by rousseau
indent the output with one feature per line (and not on the same line
separated by ,)

Revision 404 - Directory Listing
Modified Wed Sep 10 08:55:45 2003 UTC (9 years, 9 months ago) by rousseau
new build process using autoconf/automake

Revision 403 - Directory Listing
Modified Wed Sep 10 08:52:29 2003 UTC (9 years, 9 months ago) by rousseau
use PCSCLITE_MAX_READERS instead of PCSCLITE_MAX_CHANNELS

Revision 402 - Directory Listing
Modified Wed Sep 10 08:47:41 2003 UTC (9 years, 9 months ago) by rousseau
new build process using autoconf/automake

Revision 343 - Directory Listing
Modified Wed Aug 27 06:53:56 2003 UTC (9 years, 9 months ago) by rousseau
remove unused capabilities.c file

Revision 339 - Directory Listing
Modified Tue Aug 26 19:48:04 2003 UTC (9 years, 9 months ago) by rousseau
require pcsc-lite 1.2.0 instead of 1.1.2

Revision 314 - Directory Listing
Modified Thu Aug 21 14:10:33 2003 UTC (9 years, 10 months ago) by rousseau
do not print garbage if we can't get the iManufacturer or iProduct fields

Revision 309 - Directory Listing
Modified Wed Aug 20 13:21:51 2003 UTC (9 years, 10 months ago) by rousseau
comment low level debug messages

Revision 308 - Directory Listing
Modified Wed Aug 20 13:21:29 2003 UTC (9 years, 10 months ago) by rousseau
use ./ylwrap instead of ylwrap

Revision 306 - Directory Listing
Modified Wed Aug 20 12:28:55 2003 UTC (9 years, 10 months ago) by rousseau
do not define LDFLAGS since we get it from outside

Revision 305 - Directory Listing
Modified Wed Aug 20 12:28:38 2003 UTC (9 years, 10 months ago) by rousseau
add needed MacOS X frameworks to LDFLAGS (for parse and check)

Revision 303 - Directory Listing
Modified Wed Aug 20 09:27:43 2003 UTC (9 years, 10 months ago) by rousseau
wrapper to call (f)lex

Revision 301 - Directory Listing
Modified Wed Aug 20 08:37:34 2003 UTC (9 years, 10 months ago) by rousseau
do not duplicate the Info.plist filename but "calculate" it once

Revision 300 - Directory Listing
Modified Wed Aug 20 08:35:34 2003 UTC (9 years, 10 months ago) by rousseau
Add support of MacOS X

Revision 299 - Directory Listing
Modified Wed Aug 20 08:35:13 2003 UTC (9 years, 10 months ago) by rousseau
use an <array></array> for the alias enumeration

Revision 279 - Directory Listing
Modified Thu Aug 14 06:53:21 2003 UTC (9 years, 10 months ago) by rousseau
use a 1 minute USB timeout instead of the 1 second used for debug

Revision 277 - Directory Listing
Modified Thu Aug 14 06:32:24 2003 UTC (9 years, 10 months ago) by rousseau
remove parse binary in clean target

Revision 276 - Directory Listing
Modified Wed Aug 13 15:06:36 2003 UTC (9 years, 10 months ago) by rousseau
do not exit with failure if makedepend(1) does not exist

Revision 269 - Directory Listing
Added Tue Aug 12 12:40:23 2003 UTC (9 years, 10 months ago) by rousseau
Initial revision

  ViewVC Help
Powered by ViewVC 1.1.5