Hello community, here is the log from the commit of package pcsc-ccid for openSUSE:Factory checked in at 2013-11-26 19:21:50 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/pcsc-ccid (Old) and /work/SRC/openSUSE:Factory/.pcsc-ccid.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pcsc-ccid" Changes: -------- --- /work/SRC/openSUSE:Factory/pcsc-ccid/pcsc-ccid.changes 2013-10-11 09:00:10.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.pcsc-ccid.new/pcsc-ccid.changes 2013-11-26 19:21:51.000000000 +0100 @@ -1,0 +2,10 @@ +Tue Nov 26 11:07:53 UTC 2013 - [email protected] + +- Updated to version 1.4.14 + * Add support of + Gemalto GemCore SIM Pro firmware 2.0 (using USB) + * report FEATURE_IFD_PIN_PROPERTIES only for pinpad readers + * Generalize the management of (old) readers with bDeviceClass = 0xFF + * some minor bugs removed + +------------------------------------------------------------------- Old: ---- ccid-1.4.13.tar.bz2 ccid-1.4.13.tar.bz2.asc New: ---- ccid-1.4.14.tar.bz2 ccid-1.4.14.tar.bz2.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ pcsc-ccid.spec ++++++ --- /var/tmp/diff_new_pack.uleOG9/_old 2013-11-26 19:21:52.000000000 +0100 +++ /var/tmp/diff_new_pack.uleOG9/_new 2013-11-26 19:21:52.000000000 +0100 @@ -32,7 +32,7 @@ %if %suse_version > 1220 BuildRequires: gpg-offline %endif -Version: 1.4.13 +Version: 1.4.14 Release: 0 Url: http://pcsclite.alioth.debian.org/ccid.html Summary: PCSC Driver for CCID Based Smart Card Readers and GemPC Twin Serial Reader ++++++ ccid-1.4.13.tar.bz2 -> ccid-1.4.14.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccid-1.4.13/ChangeLog new/ccid-1.4.14/ChangeLog --- old/ccid-1.4.13/ChangeLog 2013-08-12 23:46:05.000000000 +0200 +++ new/ccid-1.4.14/ChangeLog 2013-11-25 19:16:37.000000000 +0100 @@ -1,3 +1,238 @@ +2013-11-25 Ludovic Rousseau + + * [r6795] README, configure.ac: Release 1.4.14 + * [r6794] README: Reformat the list of readers in the "add support + for" section + * [r6793] src/ccid_usb.c: Generalize the management of readers with + bDeviceClass = 0xFF + + Some early Gemalto Ezio CB+ readers have bDeviceClass, + bDeviceSubClass and bDeviceProtocol set to 0xFF (proprietary) + instead of 0x00. + + So on Mac OS X the reader configuration is not done by the + OS/kernel and we do it ourself. + + The code is no more limited to the GEMALTO_EZIO_CBP + (0x08E6/0x34C3) but to any reader with the problem, like the + Todos Argos Mini II CCID. + * [r6792] MacOSX/configure: Set Xcode SDK to version 10.8 + + With Xcode 5.x the minimum SDK version is 10.8 (Mountain Lion) + even on Mountain Lion. + * [r6791] readers/Gemalto_Ezio_Shield_Secure_Channel.txt, + readers/supported_readers.txt: Add Gemalto ING Shield Pro SC + * [r6790] src/ifdhandler.c: IFDHControl(): report + FEATURE_IFD_PIN_PROPERTIES only for pinpad readers + + Some (bogus) applications use the presence of + FEATURE_IFD_PIN_PROPERTIES to know if the reader is a pinpad + reader or not. The application should use + FEATURE_VERIFY_PIN_DIRECT and FEATURE_MODIFY_PIN_DIRECT instead. + + Reporting FEATURE_IFD_PIN_PROPERTIES for a non-pinpad reader is + useless so it should not harm to remove it from + CM_IOCTL_GET_FEATURE_REQUEST. + +2013-10-24 Ludovic Rousseau + + * [r6784] src/ccid_usb.c, src/ifdhandler.c: Add support of Gemalto + GemCore SIM Pro firmware 2.0 + + The new firmware of the Gemalto GemCore SIM Pro removes a + limitation of the firmware 1.0. The 2 slots now supports the same + data rates. The second slot is no more limited to some values + only. + * [r6783] src/ccid.c, src/ccid_serial.c, src/commands.c, + src/commands.h, src/ifdhandler.c: Add a timeout parameter to + CmdEscape() + + Not all commands need the same timeout. For example the + CmdEscape() used in ccid_serial.c to check if the reader is alive + should have a short timeout. The timeout was forced to 30 seconds + inside CmdEscape() so it was not possible to use a different + value. The patch fixes this. + * [r6782] src/ifdhandler.c: Limit GemCore SIM PRO hack to only the + specific reader + + If the ATR fails we should mark the card as absent only for the + GemCore SIM PRO. This reader do not manage slot status for the + second slot and a corresponding hack is present in function + IFDHICCPresence() around line 1713. + +2013-10-19 Ludovic Rousseau + + * [r6781] + readers/extra_features/Gemalto_Ezio_Shield_PinPad_Martin_features.txt: + CT710 parse from Martin Paljak + + http://archives.neohapsis.com/archives/dev/muscle/2013-q4/0040.html + https://sourceforge.net/p/opensc/mailman/message/31538801/ + +2013-10-18 Ludovic Rousseau + + * [r6776] readers/extra_features/GemPCPinpadv2_features.txt, + readers/extra_features/Gemalto_Ezio_Shield_PinPad_features.txt: + Add reader name, Pid and Vid + * [r6774] readers/extra_features, + readers/extra_features/GemPCPinpadv2_features.txt, + readers/extra_features/Gemalto_Ezio_Shield_PinPad_features.txt, + readers/extra_features/README.txt: This directory contains extra + information about a reader + + For example the result of the + PCSC/UnitaryTests/FEATURE_CCID_ESC_COMMAND_Gemalto_features.py + command on some Gemalto readers. + +2013-10-09 Ludovic Rousseau + + * [r6766] README, configure.ac: release 1.4.13 + +2013-10-02 Ludovic Rousseau + + * [r6762] MacOSX/configure: Simplify the code for a NON generic + driver + + - do not build a class driver (not yet used by pcsc-lite on Mac + OS X) using --disable-class + + - use a specific bundle name to NOT overwrite the official CCID + driver using --enable-bundle=ifd-ccid-$BUNDLE_ID.bundle + + - differentiate each libccid library by the dynamic linker using + --prefix=/fake/$BUNDLE_ID + * [r6761] MacOSX/configure: Document the use of --disable-class + +2013-10-01 Ludovic Rousseau + + * [r6760] src/ccid_usb.c, src/debug.c: Use the COUNT_OF macro + +2013-09-30 Ludovic Rousseau + + * [r6757] src/ccid_usb.c: Multislot support: do not crash on exit + + The field multislot_extension should be set to NULL only _after_ + the multi-slot thread management is stopped. This entry is used + by the Multi_PollingProc thread. + +2013-09-23 Ludovic Rousseau + + * [r6755] readers/Access_IS_ePassport_Reader.txt, + readers/supported_readers.txt: Add Access IS ePassport Reader + * [r6754] ylwrap: Update from automake 1.14 + +2013-09-21 Ludovic Rousseau + + * [r6753] src/ifdhandler.c: CreateChannelByNameOrChannel(): reset + ccid_descriptor->readTimeout in all cases + + The value was not restored in the error case. So it was not a + bug. But the Coverity tool complained: + + CID 1090609 (#1 of 1): Failure to restore non-local value + (MISSING_RESTORE)20. end_of_scope: Value of non-local + "ccid_descriptor->readTimeout" that was saved in "oldReadTimeout" + is not restored as it was along other paths. + +2013-09-16 Ludovic Rousseau + + * [r6752] src/Makefile.am: Revert change in revision 6735 + + We can't use install-exec-local since we want to overwrite the + install rule. We do not want to _add_ files to install + * [r6751] MacOSX/configure: Display the warning "No Universal + Binary build" in red + +2013-09-05 Ludovic Rousseau + + * [r6746] configure.ac: Set LIBUSB_* even if the libusb-1.0 version + is too old + + If PKG_CHECK_MODULES(LIBUSB, libusb-1.0 >= + $LIBUSB_NEEDED_VERSION,...) fails then LIBUSB_CFLAGS and + LIBUSB_LIBS are not set. This is problematic since it just + displays a warning. So we recall PKG_CHECK_MODULES(LIBUSB, + libusb-1.0) with not version test + + Problem discovered with Debian GNU/kFreeBSD where libusb-1.0 is + at version 1.0.6 (it is not the _real_ libusb). + + ./configure failed with: [...] checking for LIBUSB... no + configure: WARNING: install libusb 1.0.8 or later checking + libusb.h usability... yes checking libusb.h presence... yes + checking for libusb.h... yes configure: error: libusb not found, + use ./configure LIBUSB_LIBS=... + +2013-08-24 Ludovic Rousseau + + * [r6740] configure.ac: Use subdir-objects option + + src/Makefile.am:36: warning: source file 'towitoko/atr.c' is in a + subdirectory, src/Makefile.am:36: but option 'subdir-objects' is + disabled + + automake-1.14: warning: possible forward-incompatibility. + automake-1.14: At least a source file is in a subdirectory, but + the 'subdir-objects' automake-1.14: automake option hasn't been + enabled. For now, the corresponding output automake-1.14: object + file(s) will be placed in the top-level directory. However, + automake-1.14: this behaviour will change in future Automake + versions: they will automake-1.14: unconditionally cause object + files to be placed in the same subdirectory automake-1.14: of the + corresponding sources. automake-1.14: You are advised to start + using 'subdir-objects' option throughout your automake-1.14: + project, to avoid future incompatibilities. + +2013-08-23 Ludovic Rousseau + + * [r6739] src/ifdhandler.c: IFDHControl(): Add support of Windows + value for CM_IOCTL_GET_FEATURE_REQUEST + + Windows uses 0x313520 for SCARD_CTL_CODE(3400) pcsc-lite uses + 0x42000D48 for SCARD_CTL_CODE(3400) + + RDP aplications (like rdesktop) will convert SCardControl() + commands from a Windows application (so using 0x313520) to + pcsc-lite. + * [r6738] src/commands.c: Silence a "clang --analyze" warning + + commands.c:1936:12: warning: The right operand of '==' is a + garbage value if (0x10 == pcbuffer[0]) ^ ~~~~~~~~~~~ + * [r6737] src/ccid_usb.c: Fix "clang --analyze" warning + + ccid_usb.c:1095:14: warning: Result of 'calloc' is converted to a + pointer of type 'unsigned int', which is incompatible with sizeof + operand type 'int' int_array = calloc(n+1, sizeof(int)); ^~~~~~ + ~~~~~~~~~~~ + + - Change variable name int_array -> uint_array since the type is + "unsigned int" - Use sizeof(uint_array[0]) to always get the + correct type of a uint_array[] element + * [r6736] src/Makefile.am: Uninstall libccidtwin in the uninstall + rule + + If libccidtwin is installed in install rule we should also remove + it in the uninstall rule + * [r6735] src/Makefile.am: Use the -local versions for install and + uninstall rules + + autoreconf: running: automake --add-missing --no-force + --warnings=all src/Makefile.am:76: warning: user target 'install' + defined here ... /usr/share/automake-1.13/am/install.am: ... + overrides Automake target 'install' defined here + src/Makefile.am:99: warning: user target 'uninstall' defined here + ... /usr/share/automake-1.13/am/install.am: ... overrides + Automake target 'uninstall' defined here src/Makefile.am:99: + consider using uninstall-local instead of uninstall + + See + http://www.gnu.org/software/automake/manual/html_node/Extending.html + +2013-08-20 Ludovic Rousseau + + * [r6732] readers/Planeta_RC700-NFC_CCID.txt, + readers/supported_readers.txt: Add Planeta RC700-NFC CCID + 2013-08-12 Ludovic Rousseau * [r6729] README, configure.ac: Release 1.4.12 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccid-1.4.13/MacOSX/configure new/ccid-1.4.14/MacOSX/configure --- old/ccid-1.4.13/MacOSX/configure 2013-10-06 12:25:18.000000000 +0200 +++ new/ccid-1.4.14/MacOSX/configure 2013-11-25 18:08:07.000000000 +0100 @@ -17,7 +17,7 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA # 02110-1301 USA. -# $Id: configure 6762 2013-10-02 15:18:08Z rousseau $ +# $Id: configure 6792 2013-11-25 13:03:21Z rousseau $ # to use # ./MacOSX/configure @@ -66,7 +66,7 @@ echo -en $NORMAL else echo "Universal Binary build" - CFLAGS="$CFLAGS -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk -arch i386 -arch x86_64" + CFLAGS="$CFLAGS -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -arch i386 -arch x86_64" fi echo diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccid-1.4.13/README new/ccid-1.4.14/README --- old/ccid-1.4.13/README 2013-10-09 12:02:34.000000000 +0200 +++ new/ccid-1.4.14/README 2013-11-25 19:15:15.000000000 +0100 @@ -118,6 +118,14 @@ History: ======== +1.4.14 - 25 NOvember 2013, Ludovic Rousseau + - Add support of + . Gemalto GemCore SIM Pro firmware 2.0 (using USB) + - report FEATURE_IFD_PIN_PROPERTIES only for pinpad readers + - Generalize the management of (old) readers with bDeviceClass = 0xFF + - some minor bugs removed + + 1.4.13 - 9 October 2013, Ludovic Rousseau - Add support of . Access IS ePassport Reader @@ -276,10 +284,15 @@ 1.4.5 - 11 October 2011, Ludovic Rousseau - - Add support of Alcor Micro AU9540, Ubisys 13.56MHz RFID (CCID), - BIFIT USB-Token iBank2key, BIFIT iBank2Key, Gemalto Ezio Shield - PinPad reader, Gemalto SA .NET Dual, Precise Sense MC reader (with - fingerprint), SDS DOMINO-Key TWIN Pro + - Add support of + . Alcor Micro AU9540 + . BIFIT USB-Token iBank2key + . BIFIT iBank2Key + . Gemalto Ezio Shield PinPad reader + . Gemalto SA .NET Dual + . Precise Sense MC reader (with fingerprint) + . SDS DOMINO-Key TWIN Pro + . Ubisys 13.56MHz RFID (CCID) - Add support of bPPDUSupport and FEATURE_CCID_ESC_COMMAND - SCARD_ATTR_VENDOR_NAME and SCARD_ATTR_VENDOR_IFD_VERSION are not the vendor name and version of the driver but of the IFD: @@ -291,9 +304,12 @@ 1.4.4 - 13 May 2011, Ludovic Rousseau - - Add support of Gemalto Ezio Shield, Gemalto Ezio CB+, Gemalto Ezio - Shield Secure Channel, Gemalto Ezio Shield PinPad and Gemalto Ezio - Generic + - Add support of + . Gemalto Ezio CB+ + . Gemalto Ezio Generic + . Gemalto Ezio Shield + . Gemalto Ezio Shield PinPad + . Gemalto Ezio Shield Secure Channel - Activate USB automatic power suspend. The Linux kernel should power off the reader automatically if it is not used (pcscd is not running). @@ -303,8 +319,11 @@ 1.4.3 - 2 April 2011, Ludovic Rousseau - - Add support of Neowave Weneo, Vasco DIGIPASS 920, SCM SCL011, - Feitian ePass2003 readers + - Add support of + . Feitian ePass2003 readers + . Neowave Weneo + . SCM SCL011 + . Vasco DIGIPASS 920 - use :libudev: instead of :libhal: naming scheme. - Do not install RSA_SecurID_getpasswd and Kobil_mIDentity_switch and the associated documentation. @@ -314,10 +333,16 @@ 1.4.2 - 22 February 2011, Ludovic Rousseau - - Add support of Feitian SCR310 reader (also known as 301v2), ACS - APG8201 PINhandy 1, Oberthur ID-ONE TOKEN SLIM v2, new Neowave - Weneo token, Vasco DIGIPASS KEY 860, Vasco DIGIPASS KEY 200, - Xiring Leo v2, Xiring MyLeo, Aktiv Rutoken lite readers + - Add support of + . ACS APG8201 PINhandy 1 + . Aktiv Rutoken lite readers + . Feitian SCR310 reader (also known as 301v2) + . Oberthur ID-ONE TOKEN SLIM v2 + . Vasco DIGIPASS KEY 200 + . Vasco DIGIPASS KEY 860 + . Xiring Leo v2 + . Xiring MyLeo + . new Neowave Weneo token - Add back support of "bogus" Oz776, REINER SCT and BLUDRIVE II - Ease detection of OpenCT by pcsc-lite - disable use of interrupt card events for multi slots readers (the @@ -327,9 +352,11 @@ 1.4.1 - 3 December 2010, Ludovic Rousseau - - Add support of Gemalto Smart Guardian (SG CCID), ReinerSCT - cyberJack RFID basis, Akasa AK-CR-03, BZH uKeyCI800-K18, Free - Software Initiative of Japan Gnuk token readers + - Add support of + . Akasa AK-CR-03, BZH uKeyCI800-K18 + . Free Software Initiative of Japan Gnuk token readers + . Gemalto Smart Guardian (SG CCID) + . ReinerSCT cyberJack RFID basis - Remove O2 Micro Oz776 and Blutronics Bludrive II CCID since they are no more supported since version 1.4.0 - SecurePINVerify() & SecurePINModify(): Accept big and little @@ -348,9 +375,15 @@ 1.4.0 - 4 August 2010, Ludovic Rousseau - - add support of Kingtrust Multi-Reader, Dectel CI692, Todos CX00, - C3PO LTC36, ACS AET65, Broadcom 5880, Tianyu Smart Card Reader, - Gemalto Hybrid Smartcard Reader + - add support of + . ACS AET65 + . Broadcom 5880 + . C3PO LTC36 + . Dectel CI692 + . Gemalto Hybrid Smartcard Reader + . Kingtrust Multi-Reader + . Tianyu Smart Card Reader + . Todos CX00 - Add support of the SCM SDI 010 again. At least the contact interface can be used. - Use libusb-1.0 instead of libusb-0.1 @@ -373,14 +406,31 @@ 1.3.12 - 8 May 2010, Ludovic Rousseau - - add support of Todos AGM2 CCID, Cherry SmartTerminal XX7X, Smart - SBV280, Ask CPL108, German Privacy Foundation Crypto Stick v1.2, - id3 CL1356T5, Covadis Auriga, GoldKey PIV Token, Vasco DIGIPASS - KEY 860, Vasco DIGIPASS KEY 200, Vasco DP855, Vasco DP865, Atmel - AT90SCR100, Atmel AT90SCR050, Atmel VaultIC420, Atmel VaultIC440, - Atmel VaultIC460, KOBIL Smart Token, KOBIL mIDentity 4smart, KOBIL - mIDentity 4smart AES, KOBIL mIDentity visual, KOBIL mIDentity - fullsize, KOBIL mIDentity 4smart fullsize AES, SCM SCR3500 + - add support of + . Ask CPL108 + . Atmel AT90SCR050 + . Atmel AT90SCR100 + . Atmel VaultIC420 + . Atmel VaultIC440 + . Atmel VaultIC460 + . Cherry SmartTerminal XX7X + . Covadis Auriga + . German Privacy Foundation Crypto Stick v1.2 + . GoldKey PIV Token + . KOBIL Smart Token + . KOBIL mIDentity 4smart + . KOBIL mIDentity 4smart AES + . KOBIL mIDentity 4smart fullsize AES + . KOBIL mIDentity fullsize + . KOBIL mIDentity visual + . SCM SCR3500 + . Smart SBV280 + . Todos AGM2 CCID + . Vasco DIGIPASS KEY 200 + . Vasco DIGIPASS KEY 860 + . Vasco DP855 + . Vasco DP865 + . id3 CL1356T5 - remove support of Smart SBV280 on manufacturer request. They use libusb directly. - remove support of SCM SDI 010 on manufacturer request since not @@ -419,10 +469,17 @@ 1.3.11 - 28 July 2009, Ludovic Rousseau - - add support of Raritan D2CIM-DVUSB VM/CCID, Feitian SCR301, - Softforum XecureHSM, 2 Neowave Weneo tokens, Synnix STD200, Aktiv - Rutoken ECP, Alcor Micro SCR001, ATMEL AT91SC192192CT-USB, - Panasonic USB Smart Card Reader 7A-Smart, Gemalto GemProx DU and SU + - add support of + . Raritan D2CIM-DVUSB VM/CCID + . Feitian SCR301 + . Softforum XecureHSM + . 2 Neowave Weneo tokens + . Synnix STD200 + . Aktiv Rutoken ECP + . Alcor Micro SCR001 + . ATMEL AT91SC192192CT-USB + . Panasonic USB Smart Card Reader 7A-Smart + . Gemalto GemProx DU and SU - remove support of Reiner-SCT cyberJack pinpad(a) on request of Reiner-SCT. You should user the Reiner-SCT driver instead - define CFBundleName to CCIDCLASSDRIVER so that non class drivers @@ -442,10 +499,15 @@ 1.3.10 - 7 March 2009, Ludovic Rousseau - - add support for MSI StarReader SMART, Noname reader (from - Omnikey), Xiring Xi Sign PKI, Realtek 43 in 1 + Sim + Smart Card - Reader, Atmel AT98SC032CT, Aktiv Rutoken Magistra, TianYu CCID - SmartKey, Precise Biometrics 200 MC and 250 MC + - add support for + . Aktiv Rutoken Magistra + . Atmel AT98SC032CT + . MSI StarReader SMART + . Noname reader (from Omnikey) + . Precise Biometrics 200 MC and 250 MC + . Realtek 43 in 1 + Sim + Smart Card Reader + . TianYu CCID SmartKey + . Xiring Xi Sign PKI - add a patch to support the bogus OpenPGP card (on board key generation sometimes timed out) - disable support of the contactless part of SDI010 and SCR331DI @@ -454,12 +516,22 @@ 1.3.9 - 18 November 2008, Ludovic Rousseau - - add support for Aladdin eToken PRO USB 72K Java, Cherry - SmartTerminal ST-1200USB, Atmel AT91SO, SpringCard Prox'N'Roll, - CSB6 Basic, EasyFinger Ultimate, CSB6 Ultimate, EasyFinger - Standard, CrazyWriter, CSB6 Secure, KONA USB SmartCard, HP MFP - Smart Card Reader, ACS ACR122U PICC, Gemalto PDT, VMware Virtual - USB CCID + - add support for + . ACS ACR122U PICC + . Aladdin eToken PRO USB 72K Java + . Atmel AT91SO + . CSB6 Basic + . CSB6 Secure + . CSB6 Ultimate + . Cherry SmartTerminal ST-1200USB + . CrazyWriter + . EasyFinger Standard + . EasyFinger Ultimate + . Gemalto PDT + . HP MFP Smart Card Reader + . KONA USB SmartCard + . SpringCard Prox'N'Roll + . VMware Virtual USB CCID - MacOSX/configure: do not overwrite PCSC_CFLAGS, PCSC_LIBS, LIBUSB_CFLAGS and LIBUSB_LIBS if already defined by the user - by default, link statically against libusb on Mac OS X @@ -472,7 +544,8 @@ 1.3.8 - 27 June 2008, Ludovic Rousseau - - add support for Oberthur ID-One Cosmo Card + - add support for + . Oberthur ID-One Cosmo Card - do not include the release number in the Info.plist to avoid a diff of a configuration file when upgrading the package. - do not fail compilation if libusb is not available @@ -482,8 +555,10 @@ 1.3.7 - 8 June 2008, Ludovic Rousseau - - add support for ActivCard Activkey Sim, Pro-Active CSB6 Ultimate, - id3 Semiconductors CL1356A HID + - add support for + . ActivCard Activkey Sim + . Pro-Active CSB6 Ultimate + . id3 Semiconductors CL1356A HID - src/parse: do not try to parse devices with bInterfaceClass=0xFF by default (use command line argument -p for proprietary class) - configure.in: check if libusb-0.1 is emulated by libusb-compat + @@ -495,8 +570,12 @@ 1.3.6 - 30 April 2008, Ludovic Rousseau - - add support for Covadis Alya, Covadis Véga, Precise Biometrics 250 - MC, Vasco DP905, Validy TokenA sl vt + - add support for + . Covadis Alya + . Covadis Véga + . Precise Biometrics 250 MC + . Validy TokenA sl vt + . Vasco DP905 - better support for the O2Micro OZ776, GemCore SIM Pro - the environment variable LIBCCID_ifdLogLevel overwrite the value of ifdLogLevel read from the Info.plist file @@ -850,6 +929,6 @@ - First public release -$Id: README 6766 2013-10-09 10:00:52Z rousseau $ +$Id: README 6795 2013-11-25 18:09:17Z rousseau $ vim:ts=20 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccid-1.4.13/configure new/ccid-1.4.14/configure --- old/ccid-1.4.13/configure 2013-10-09 12:02:44.000000000 +0200 +++ new/ccid-1.4.14/configure 2013-11-25 19:15:25.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for ccid 1.4.13. +# Generated by GNU Autoconf 2.69 for ccid 1.4.14. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -587,8 +587,8 @@ # Identity of this package. PACKAGE_NAME='ccid' PACKAGE_TARNAME='ccid' -PACKAGE_VERSION='1.4.13' -PACKAGE_STRING='ccid 1.4.13' +PACKAGE_VERSION='1.4.14' +PACKAGE_STRING='ccid 1.4.14' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -1362,7 +1362,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures ccid 1.4.13 to adapt to many kinds of systems. +\`configure' configures ccid 1.4.14 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1432,7 +1432,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of ccid 1.4.13:";; + short | recursive ) echo "Configuration of ccid 1.4.14:";; esac cat <<\_ACEOF @@ -1568,7 +1568,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -ccid configure 1.4.13 +ccid configure 1.4.14 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1987,7 +1987,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by ccid $as_me 1.4.13, which was +It was created by ccid $as_me 1.4.14, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2851,7 +2851,7 @@ # Define the identity of the package. PACKAGE='ccid' - VERSION='1.4.13' + VERSION='1.4.14' cat >>confdefs.h <<_ACEOF @@ -14159,7 +14159,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by ccid $as_me 1.4.13, which was +This file was extended by ccid $as_me 1.4.14, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -14225,7 +14225,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -ccid config.status 1.4.13 +ccid config.status 1.4.14 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccid-1.4.13/configure.ac new/ccid-1.4.14/configure.ac --- old/ccid-1.4.13/configure.ac 2013-10-09 12:02:34.000000000 +0200 +++ new/ccid-1.4.14/configure.ac 2013-11-25 19:15:15.000000000 +0100 @@ -1,12 +1,12 @@ # Process this file with autoconf to produce a configure script. # You may need to use autoconf 2.56 or newer -# $Id: configure.ac 6766 2013-10-09 10:00:52Z rousseau $ +# $Id: configure.ac 6795 2013-11-25 18:09:17Z rousseau $ # Require autoconf 2.61 AC_PREREQ([2.69]) -AC_INIT([ccid],[1.4.13]) +AC_INIT([ccid],[1.4.14]) AC_CONFIG_SRCDIR(src/ifdhandler.c) AC_CONFIG_AUX_DIR([.]) AM_INIT_AUTOMAKE(1.8 dist-bzip2 no-dist-gzip subdir-objects) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccid-1.4.13/readers/supported_readers.txt new/ccid-1.4.14/readers/supported_readers.txt --- old/ccid-1.4.13/readers/supported_readers.txt 2013-10-06 12:25:18.000000000 +0200 +++ new/ccid-1.4.14/readers/supported_readers.txt 2013-11-25 18:08:07.000000000 +0100 @@ -1,6 +1,6 @@ # # List of readers supported by the CCID driver -# Generated: 2013-09-23 +# Generated: 2013-11-25 # # DO NOT EDIT BY HAND @@ -219,6 +219,7 @@ # Gemalto 0x08E6:0x2202:Gemalto Gem e-Seal Pro USB Token +0x08E6:0x34C1:Gemalto ING Shield Pro SC 0x08E6:0x34C2:Gemalto Ezio Shield 0x08E6:0x34C5:Gemalto Ezio Shield Branch Reader 0x08E6:0x34EC:Gemalto GemPC Express diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccid-1.4.13/src/ccid.c new/ccid-1.4.14/src/ccid.c --- old/ccid-1.4.13/src/ccid.c 2013-06-12 13:56:24.000000000 +0200 +++ new/ccid-1.4.14/src/ccid.c 2013-11-25 18:08:07.000000000 +0100 @@ -18,7 +18,7 @@ */ /* - * $Id: ccid.c 6650 2013-06-10 08:43:24Z rousseau $ + * $Id: ccid.c 6783 2013-10-24 09:36:52Z rousseau $ */ #include <stdio.h> @@ -200,7 +200,7 @@ RESPONSECODE ret; ret = CmdEscape(reader_index, cmd, sizeof cmd, - (unsigned char*)gf_features, &len_features); + (unsigned char*)gf_features, &len_features, 0); if ((IFD_SUCCESS == ret) && (len_features == sizeof *gf_features)) { @@ -242,7 +242,7 @@ unsigned char res[10]; unsigned int length_res = sizeof(res); - if (CmdEscape(reader_index, cmd, sizeof(cmd), res, &length_res) == IFD_SUCCESS) + if (CmdEscape(reader_index, cmd, sizeof(cmd), res, &length_res, 0) == IFD_SUCCESS) { ccid_descriptor->dwFeatures &= ~CCID_CLASS_EXCHANGE_MASK; ccid_descriptor->dwFeatures |= CCID_CLASS_SHORT_APDU; @@ -427,7 +427,7 @@ } (void)sleep(1); - if (IFD_SUCCESS == CmdEscape(reader_index, cmd, sizeof(cmd), res, &length_res)) + if (IFD_SUCCESS == CmdEscape(reader_index, cmd, sizeof(cmd), res, &length_res, 0)) { DEBUG_COMM("l10n string loaded successfully"); } @@ -467,8 +467,8 @@ unsigned char res[20]; unsigned int length_res = sizeof(res); - if ((IFD_SUCCESS == CmdEscape(reader_index, cmd1, sizeof(cmd1), res, &length_res)) - && (IFD_SUCCESS == CmdEscape(reader_index, cmd2, sizeof(cmd2), res, &length_res))) + if ((IFD_SUCCESS == CmdEscape(reader_index, cmd1, sizeof(cmd1), res, &length_res, 0)) + && (IFD_SUCCESS == CmdEscape(reader_index, cmd2, sizeof(cmd2), res, &length_res, 0))) { DEBUG_COMM("SCM SCR331-DI contactless detected"); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccid-1.4.13/src/ccid_serial.c new/ccid-1.4.14/src/ccid_serial.c --- old/ccid-1.4.13/src/ccid_serial.c 2013-06-12 13:56:24.000000000 +0200 +++ new/ccid-1.4.14/src/ccid_serial.c 2013-11-25 18:08:07.000000000 +0100 @@ -20,7 +20,7 @@ */ /* - * $Id: ccid_serial.c 6650 2013-06-10 08:43:24Z rousseau $ + * $Id: ccid_serial.c 6783 2013-10-24 09:36:52Z rousseau $ */ #include <stdio.h> @@ -760,19 +760,14 @@ unsigned int rx_length = sizeof(rx_buffer); /* 2 seconds timeout to not wait too long if no reader is connected */ - serialDevice[reader].ccid.readTimeout = 2*1000; - if (IFD_SUCCESS != CmdEscape(reader_index, tx_buffer, sizeof(tx_buffer), - rx_buffer, &rx_length)) + rx_buffer, &rx_length, 2*1000)) { DEBUG_CRITICAL("Get firmware failed. Maybe the reader is not connected"); (void)CloseSerial(reader_index); return STATUS_UNSUCCESSFUL; } - /* normal timeout: 2 seconds */ - serialDevice[reader].ccid.readTimeout = DEFAULT_COM_READ_TIMEOUT ; - rx_buffer[rx_length] = '\0'; DEBUG_INFO2("Firmware: %s", rx_buffer); } @@ -786,7 +781,7 @@ unsigned int rx_length = sizeof(rx_buffer); if (IFD_SUCCESS != CmdEscape(reader_index, tx_buffer, sizeof(tx_buffer), - rx_buffer, &rx_length)) + rx_buffer, &rx_length, 0)) { DEBUG_CRITICAL("Change card movement notification failed."); (void)CloseSerial(reader_index); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccid-1.4.13/src/ccid_usb.c new/ccid-1.4.14/src/ccid_usb.c --- old/ccid-1.4.13/src/ccid_usb.c 2013-10-06 12:25:18.000000000 +0200 +++ new/ccid-1.4.14/src/ccid_usb.c 2013-11-25 18:08:07.000000000 +0100 @@ -18,7 +18,7 @@ */ /* - * $Id: ccid_usb.c 6760 2013-10-01 12:57:50Z rousseau $ + * $Id: ccid_usb.c 6793 2013-11-25 13:09:41Z rousseau $ */ #define __CCID_USB__ @@ -447,9 +447,12 @@ /* we reuse the same device * and the reader is multi-slot */ usbDevice[reader_index] = usbDevice[previous_reader_index]; - /* the other slots do not have the same data rates */ + /* The other slots of GemCore SIM Pro firmware + * 1.0 do not have the same data rates. + * Firmware 2.0 do not have this limitation */ if ((GEMCOREPOSPRO == readerID) - || (GEMCORESIMPRO == readerID)) + || ((GEMCORESIMPRO == readerID) + && (usbDevice[reader_index].ccid.IFD_bcdDevice < 0x0200))) { usbDevice[reader_index].ccid.arrayOfSupportedDataRates = SerialCustomDataRates; usbDevice[reader_index].ccid.dwMaxDataRate = 125000; @@ -494,35 +497,45 @@ } again: -#ifdef __APPLE__ - /* Some early Gemalto Ezio CB+ readers have - * bDeviceClass, bDeviceSubClass and bDeviceProtocol set - * to 0xFF (proprietary) instead of 0x00. - * - * So on Mac OS X the reader configuration is not done - * by the OS/kernel and we do it ourself. - */ - if (GEMALTO_EZIO_CBP == readerID) + r = libusb_get_active_config_descriptor(dev, &config_desc); + if (r < 0) { - r = libusb_set_configuration(dev_handle, 1); +#ifdef __APPLE__ + /* Some early Gemalto Ezio CB+ readers have + * bDeviceClass, bDeviceSubClass and bDeviceProtocol set + * to 0xFF (proprietary) instead of 0x00. + * + * So on Mac OS X the reader configuration is not done + * by the OS/kernel and we do it ourself. + */ + if ((0xFF == desc.bDeviceClass) + && (0xFF == desc.bDeviceSubClass) + && (0xFF == desc.bDeviceProtocol)) + { + r = libusb_set_configuration(dev_handle, 1); + if (r < 0) + { + (void)libusb_close(dev_handle); + DEBUG_CRITICAL4("Can't set configuration on %d/%d: %d", + bus_number, device_address, r); + continue; + } + } + + /* recall */ + r = libusb_get_active_config_descriptor(dev, &config_desc); if (r < 0) { +#endif (void)libusb_close(dev_handle); - DEBUG_CRITICAL4("Can't set configuration on %d/%d: %d", + DEBUG_CRITICAL4("Can't get config descriptor on %d/%d: %d", bus_number, device_address, r); continue; } +#ifdef __APPLE__ } #endif - r = libusb_get_active_config_descriptor(dev, &config_desc); - if (r < 0) - { - (void)libusb_close(dev_handle); - DEBUG_CRITICAL4("Can't get config descriptor on %d/%d: %d", - bus_number, device_address, r); - continue; - } usb_interface = get_ccid_usb_interface(config_desc, &num); if (usb_interface == NULL) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccid-1.4.13/src/commands.c new/ccid-1.4.14/src/commands.c --- old/ccid-1.4.13/src/commands.c 2013-10-06 12:25:18.000000000 +0200 +++ new/ccid-1.4.14/src/commands.c 2013-11-25 18:08:07.000000000 +0100 @@ -19,7 +19,7 @@ */ /* - * $Id: commands.c 6738 2013-08-23 08:43:37Z rousseau $ + * $Id: commands.c 6783 2013-10-24 09:36:52Z rousseau $ */ #include <string.h> @@ -245,7 +245,7 @@ unsigned int res_length = sizeof(res_tmp); if ((return_value = CmdEscape(reader_index, cmd_tmp, - sizeof(cmd_tmp), res_tmp, &res_length)) != IFD_SUCCESS) + sizeof(cmd_tmp), res_tmp, &res_length, 0)) != IFD_SUCCESS) return return_value; /* avoid looping if we can't switch mode */ @@ -455,7 +455,7 @@ /* the SPR532 will append the PIN code without any padding */ return_value = CmdEscape(reader_index, cmd_tmp, sizeof(cmd_tmp), - res_tmp, &res_length); + res_tmp, &res_length, 0); if (return_value != IFD_SUCCESS) return return_value; @@ -805,7 +805,7 @@ ****************************************************************************/ RESPONSECODE CmdEscape(unsigned int reader_index, const unsigned char TxBuffer[], unsigned int TxLength, - unsigned char RxBuffer[], unsigned int *RxLength) + unsigned char RxBuffer[], unsigned int *RxLength, unsigned int timeout) { unsigned char *cmd_in, *cmd_out; status_t res; @@ -814,8 +814,12 @@ int old_read_timeout; _ccid_descriptor *ccid_descriptor = get_ccid_descriptor(reader_index); - old_read_timeout = ccid_descriptor -> readTimeout; - ccid_descriptor -> readTimeout = 30*1000; /* 30 seconds */ + /* a value of 0 do not change the default read timeout */ + if (timeout > 0) + { + old_read_timeout = ccid_descriptor -> readTimeout; + ccid_descriptor -> readTimeout = timeout; + } again: /* allocate buffers */ @@ -909,7 +913,9 @@ free(cmd_out); end: - ccid_descriptor -> readTimeout = old_read_timeout; + if (timeout > 0) + ccid_descriptor -> readTimeout = old_read_timeout; + return return_value; } /* Escape */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccid-1.4.13/src/commands.h new/ccid-1.4.14/src/commands.h --- old/ccid-1.4.13/src/commands.h 2010-06-04 14:31:15.000000000 +0200 +++ new/ccid-1.4.14/src/commands.h 2013-11-25 18:08:07.000000000 +0100 @@ -18,7 +18,7 @@ */ /* - * $Id: commands.h 4973 2010-06-01 09:43:29Z rousseau $ + * $Id: commands.h 6783 2013-10-24 09:36:52Z rousseau $ */ #define SIZE_GET_SLOT_STATUS 10 @@ -39,7 +39,7 @@ RESPONSECODE CmdEscape(unsigned int reader_index, const unsigned char TxBuffer[], unsigned int TxLength, - unsigned char RxBuffer[], unsigned int *RxLength); + unsigned char RxBuffer[], unsigned int *RxLength, unsigned int timeout); RESPONSECODE CmdPowerOff(unsigned int reader_index); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccid-1.4.13/src/ifdhandler.c new/ccid-1.4.14/src/ifdhandler.c --- old/ccid-1.4.13/src/ifdhandler.c 2013-10-06 12:25:18.000000000 +0200 +++ new/ccid-1.4.14/src/ifdhandler.c 2013-11-25 18:08:07.000000000 +0100 @@ -17,7 +17,7 @@ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -/* $Id: ifdhandler.c 6753 2013-09-21 14:16:17Z rousseau $ */ +/* $Id: ifdhandler.c 6790 2013-11-25 10:02:35Z rousseau $ */ #include <stdio.h> #include <string.h> @@ -1182,8 +1182,9 @@ if (return_value != IFD_SUCCESS) { /* used by GemCore SIM PRO: no card is present */ - get_ccid_descriptor(reader_index)->dwSlotStatus - = IFD_ICC_NOT_PRESENT; + if (GEMCORESIMPRO == ccid_descriptor -> readerID) + get_ccid_descriptor(reader_index)->dwSlotStatus + = IFD_ICC_NOT_PRESENT; DEBUG_CRITICAL("PowerUp failed"); return_value = IFD_ERROR_POWER_ACTION; @@ -1396,8 +1397,9 @@ unsigned int iBytesReturned; iBytesReturned = RxLength; - return_value = CmdEscape(reader_index, TxBuffer, TxLength, RxBuffer, - &iBytesReturned); + /* 30 seconds timeout for long commands */ + return_value = CmdEscape(reader_index, TxBuffer, TxLength, + RxBuffer, &iBytesReturned, 30*1000); *pdwBytesReturned = iBytesReturned; } } @@ -1439,13 +1441,16 @@ iBytesReturned += sizeof(PCSC_TLV_STRUCTURE); } - /* We can always forward wLcdLayout */ - pcsc_tlv -> tag = FEATURE_IFD_PIN_PROPERTIES; - pcsc_tlv -> length = 0x04; /* always 0x04 */ - pcsc_tlv -> value = htonl(IOCTL_FEATURE_IFD_PIN_PROPERTIES); + /* Provide IFD_PIN_PROPERTIES only for pinpad readers */ + if (ccid_descriptor -> bPINSupport) + { + pcsc_tlv -> tag = FEATURE_IFD_PIN_PROPERTIES; + pcsc_tlv -> length = 0x04; /* always 0x04 */ + pcsc_tlv -> value = htonl(IOCTL_FEATURE_IFD_PIN_PROPERTIES); - pcsc_tlv++; - iBytesReturned += sizeof(PCSC_TLV_STRUCTURE); + pcsc_tlv++; + iBytesReturned += sizeof(PCSC_TLV_STRUCTURE); + } if ((KOBIL_TRIBANK == readerID) || (KOBIL_MIDENTITY_VISUAL == readerID)) @@ -1542,7 +1547,7 @@ unsigned int len; len = sizeof(firmware); - ret = CmdEscape(reader_index, cmd, sizeof(cmd), firmware, &len); + ret = CmdEscape(reader_index, cmd, sizeof(cmd), firmware, &len, 0); if (IFD_SUCCESS == ret) { @@ -1669,8 +1674,8 @@ /* we just transmit the buffer as a CCID Escape command */ iBytesReturned = RxLength; - return_value = CmdEscape(reader_index, TxBuffer, TxLength, RxBuffer, - &iBytesReturned); + return_value = CmdEscape(reader_index, TxBuffer, TxLength, + RxBuffer, &iBytesReturned, 0); *pdwBytesReturned = iBytesReturned; } } @@ -1707,8 +1712,11 @@ ccid_descriptor = get_ccid_descriptor(reader_index); - if (GEMCORESIMPRO == ccid_descriptor->readerID) + if ((GEMCORESIMPRO == ccid_descriptor->readerID) + && (ccid_descriptor->IFD_bcdDevice < 0x0200)) { + /* GemCore SIM Pro firmware 2.00 and up features + * a full independant second slot */ return_value = ccid_descriptor->dwSlotStatus; goto end; } @@ -1791,7 +1799,7 @@ if (! (LogLevel & DEBUG_LEVEL_PERIODIC)) LogLevel &= ~DEBUG_LEVEL_COMM; - ret = CmdEscape(reader_index, cmd, sizeof(cmd), res, &length_res); + ret = CmdEscape(reader_index, cmd, sizeof(cmd), res, &length_res, 0); /* set back the old LogLevel */ LogLevel = oldLogLevel; -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
