Hello community,
here is the log from the commit of package pcsc-ccid for openSUSE:Factory checked in at 2016-05-31 12:24:48
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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 2016-04-22 16:26:04.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.pcsc-ccid.new/pcsc-ccid.changes 2016-05-31 12:24:51.000000000 +0200
@@ -1,0 +2,14 @@
+Mon May 30 06:36:05 UTC 2016 - wr@rosenauer.org
+
+- Updated to version 1.4.24
+ * Add support of
+ Generic USB Smart Card Reader
+ Giesecke & Devrient GmbH StarSign CUT S
+ HID AVIATOR Generic
+ * better support of Elatec TWN4 SmartCard NFC
+ * better support of SCM SCL011
+ * fix SCARD_ATTR_VENDOR_IFD_SERIAL_NO attribute size
+ * fix a race condition on card events with multiple readers
+ * Some minor improvements
+
+-------------------------------------------------------------------
Old:
----
ccid-1.4.23.tar.bz2
ccid-1.4.23.tar.bz2.asc
New:
----
ccid-1.4.24.tar.bz2
ccid-1.4.24.tar.bz2.asc
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ pcsc-ccid.spec ++++++
--- /var/tmp/diff_new_pack.A7AwFJ/_old 2016-05-31 12:24:52.000000000 +0200
+++ /var/tmp/diff_new_pack.A7AwFJ/_new 2016-05-31 12:24:52.000000000 +0200
@@ -24,7 +24,7 @@
Name: pcsc-ccid
%define _name ccid
-Version: 1.4.23
+Version: 1.4.24
Release: 0
Summary: PCSC Driver for CCID Based Smart Card Readers and GemPC Twin Serial Reader
License: LGPL-2.1+
++++++ ccid-1.4.23.tar.bz2 -> ccid-1.4.24.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccid-1.4.23/ChangeLog new/ccid-1.4.24/ChangeLog
--- old/ccid-1.4.23/ChangeLog 2016-04-20 10:06:39.000000000 +0200
+++ new/ccid-1.4.24/ChangeLog 2016-05-22 17:09:51.000000000 +0200
@@ -1,4 +1,177 @@
-commit d636d54fdd07b416f591f28d84c6f0e3f4bda4f9 (HEAD -> master, tag: ccid-1.4.23, origin/master, origin/HEAD)
+commit a1197c49cee479f4187dfd05c900224b99127e17 (HEAD -> master, tag: ccid-1.4.24, origin/master, origin/HEAD)
+Author: Ludovic Rousseau
+Date: Sun May 22 17:07:03 2016 +0200
+
+ Release 1.4.24
+
+ README | 12 ++++++++++++
+ configure.ac | 2 +-
+ 2 files changed, 13 insertions(+), 1 deletion(-)
+
+commit b4c2cae5f311eef313777124937520c780d002fd
+Author: Ludovic Rousseau
+Date: Fri May 20 15:19:05 2016 +0200
+
+ IFDHGetCapabilities: fix SCARD_ATTR_VENDOR_IFD_SERIAL_NO size
+
+ We use strlcpy() to copy the IFD (reader) serial number string. So we
+ must must take into account the terminating NUL byte.
+
+ Without the patch the size was "correctly" reported on the first call
+ (without including the final NUL byte). So the application allocates a
+ buffer for this size and the next strlcpy() tuncates the string to add
+ the NUL byte.
+
+ Thanks to Daniel Kucera for the bug report.
+
+ src/ifdhandler.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 5eaa22bbaac16ca3e20e49418c37291ac128c3ad
+Author: Ludovic Rousseau
+Date: Thu May 19 21:16:48 2016 +0200
+
+ Add Giesecke & Devrient GmbH StarSign CUT S
+
+ readers/GnD_StarSign_CUT_S.txt | 56 ++++++++++++++++++++++++++++++++++++++++++
+ readers/supported_readers.txt | 1 +
+ 2 files changed, 57 insertions(+)
+
+commit b3eedaf7873e5438f5f2e8b163b2c0362099e318
+Author: Ludovic Rousseau
+Date: Thu May 19 20:56:13 2016 +0200
+
+ Add Generic USB Smart Card Reader
+
+ This reader is the same as the "HID AVIATOR Generic" except that it
+ supports "Short and Extended APDU level exchange" instead of "Short APDU
+ level exchange".
+
+ readers/Generic_USB_Smart_Card_Reader.txt | 161 ++++++++++++++++++++++++++++++
+ readers/supported_readers.txt | 9 +-
+ 2 files changed, 168 insertions(+), 2 deletions(-)
+
+commit e039760f0ab57a0e66e2f6dabebfdf6ba3134b14
+Author: Ludovic Rousseau
+Date: Mon May 9 10:05:45 2016 +0200
+
+ Fix support of HID Aviator generic
+
+ This reader firmware is bogus:
+ - it declares pinpad support but as no keyboard
+ - it declares short APDU but uses chaining as for extended APDU
+
+ Thanks to Martin Paljak for the bug report
+ https://github.com/LudovicRousseau/CCID/pull/16
+
+ src/ccid.c | 7 +++++++
+ src/ccid.h | 1 +
+ 2 files changed, 8 insertions(+)
+
+commit c18293616c834362555a61b3d84624ec24522bb3
+Author: Ludovic Rousseau
+Date: Mon May 9 20:10:13 2016 +0200
+
+ Add HID AVIATOR Generic
+
+ readers/HID_Aviator.txt | 161 ++++++++++++++++++++++++++++++++++++++++++
+ readers/supported_readers.txt | 5 +-
+ 2 files changed, 165 insertions(+), 1 deletion(-)
+
+commit b5673dfae8ab054557938abea864e5c34f61d2ed
+Author: Ludovic Rousseau
+Date: Mon May 9 09:53:35 2016 +0200
+
+ Update c.sh link
+
+ The c.sh script is used call ./configure with "correct" parameter for
+ me (maintainer).
+ This file comes from PCSC and is a symbolic link.
+
+ Thanks to Martin Paljak for the bug report
+ https://github.com/LudovicRousseau/CCID/pull/15
+
+ c.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+commit 5c9dbb25abb9fed9882b7c28b65fe55d4d7924fb
+Author: Ludovic Rousseau
+Date: Sat May 7 12:12:28 2016 +0200
+
+ SCM SCL011: use a 400 ms timeout instead of 100 ms
+
+ The SCM SCL011 reader is a contactless reader that needs 350 ms to
+ answer to the PC_to_RDR_GetSlotStatus CCID command when no card is in
+ the field.
+
+ We use the same patch as for the ElatecTWN4.
+
+ Thanks to Chris Calvesbert for the bug report.
+
+ src/ccid.c | 3 +++
+ src/ccid.h | 1 +
+ 2 files changed, 4 insertions(+)
+
+commit 5bea205f085a6b5ddd263843f410abab728550b7
+Author: Ludovic Rousseau
+Date: Wed May 4 18:31:57 2016 +0200
+
+ ElatecTWN4: use a 400 ms timeout instead of 100 ms
+
+ The ElatecTWN4 reader is a contactless reader that needs 280 ms to
+ answer to the PC_to_RDR_GetSlotStatus CCID command when no card is in
+ the field.
+
+ src/ccid.c | 12 ++++++++++++
+ src/ccid.h | 1 +
+ 2 files changed, 13 insertions(+)
+
+commit 1e3c6c14683e3b5a9bc27fed55ae32b7dc2ee157
+Author: Ludovic Rousseau
+Date: Wed May 4 18:20:13 2016 +0200
+
+ CreateChannel: allow to use a non default timeout
+
+ By default the read timeout is set to 100 ms for the double call of
+ CmdGetSlotStatus() in CreateChannelByNameOrChannel() use to resync the
+ USB toggle bits.
+ This is a short delay so that a failing reader will not block for too
+ long. The defaut timeout value is 3 seconds so a total of 6 seconds
+ would be lost is the reader is not responding.
+
+ Unfortunately some readers (in particular contactless readers) are very
+ long to anwser to the PC_to_RDR_GetSlotStatus CCID command. I guess it
+ is to be sure no contactless card is present in the field.
+
+ It is now possible to change the 100 ms timeout to something else for a
+ specific reader by adding code in ccid_open_hack_pre() and
+ ccid_open_hack_post().
+
+ src/ifdhandler.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+commit 2c8ffab9962484653b6445a6c85a6c690a5948b3
+Author: Ludovic Rousseau
+Date: Fri Apr 22 14:59:21 2016 +0200
+
+ ccid_usb.c: fix a race condition on multi reader
+
+ When using multiple threads we shall use libusb function
+ libusb_handle_events_completed() instead of libusb_handle_events() as
+ documented in http://libusb.sourceforge.net/api-1.0/mtasync.html#Using
+
+ Problems may occur when using more than one reader. In that case a card
+ movement notification may be missed and reported only after a 60 seconds
+ timeout.
+
+ Thanks to Maksim Ivanov for the bug report
+ "CCID handling of multiple devices"
+ http://lists.alioth.debian.org/pipermail/pcsclite-muscle/Week-of-Mon-2016041...
+
+ src/ccid_usb.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+commit d636d54fdd07b416f591f28d84c6f0e3f4bda4f9 (tag: ccid-1.4.23)
Author: Ludovic Rousseau
Date: Wed Apr 20 10:04:45 2016 +0200
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccid-1.4.23/README new/ccid-1.4.24/README
--- old/ccid-1.4.23/README 2016-04-20 10:05:43.000000000 +0200
+++ new/ccid-1.4.24/README 2016-05-22 17:08:59.000000000 +0200
@@ -118,6 +118,18 @@
History:
========
+1.4.24 - 22 May 2016, Ludovic Rousseau
+ - Add support of
+ . Generic USB Smart Card Reader
+ . HID AVIATOR Generic
+ - better support of Elatec TWN4 SmartCard NFC
+ - better support of SCM SCL011
+ - betetr support of HID Aviator generic
+ - fix SCARD_ATTR_VENDOR_IFD_SERIAL_NO attribute size
+ - fix a race condition on card events with multiple readers
+ - Some minor improvements
+
+
1.4.23 - 20 April 2016, Ludovic Rousseau
- Add support of
. ACS ACR3901U ICC Reader
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccid-1.4.23/configure new/ccid-1.4.24/configure
--- old/ccid-1.4.23/configure 2016-04-20 10:05:47.000000000 +0200
+++ new/ccid-1.4.24/configure 2016-05-22 17:09:05.000000000 +0200
@@ -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.23.
+# Generated by GNU Autoconf 2.69 for ccid 1.4.24.
#
#
# 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.23'
-PACKAGE_STRING='ccid 1.4.23'
+PACKAGE_VERSION='1.4.24'
+PACKAGE_STRING='ccid 1.4.24'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1377,7 +1377,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.23 to adapt to many kinds of systems.
+\`configure' configures ccid 1.4.24 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1448,7 +1448,7 @@
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of ccid 1.4.23:";;
+ short | recursive ) echo "Configuration of ccid 1.4.24:";;
esac
cat <<\_ACEOF
@@ -1590,7 +1590,7 @@
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-ccid configure 1.4.23
+ccid configure 1.4.24
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2009,7 +2009,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.23, which was
+It was created by ccid $as_me 1.4.24, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@@ -2873,7 +2873,7 @@
# Define the identity of the package.
PACKAGE='ccid'
- VERSION='1.4.23'
+ VERSION='1.4.24'
cat >>confdefs.h <<_ACEOF
@@ -14695,7 +14695,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.23, which was
+This file was extended by ccid $as_me 1.4.24, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -14761,7 +14761,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.23
+ccid config.status 1.4.24
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.23/configure.ac new/ccid-1.4.24/configure.ac
--- old/ccid-1.4.23/configure.ac 2016-04-20 10:05:43.000000000 +0200
+++ new/ccid-1.4.24/configure.ac 2016-05-22 17:08:59.000000000 +0200
@@ -4,7 +4,7 @@
# Require autoconf 2.61
AC_PREREQ([2.69])
-AC_INIT([ccid],[1.4.23])
+AC_INIT([ccid],[1.4.24])
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.23/readers/supported_readers.txt new/ccid-1.4.24/readers/supported_readers.txt
--- old/ccid-1.4.23/readers/supported_readers.txt 2016-04-19 21:11:16.000000000 +0200
+++ new/ccid-1.4.24/readers/supported_readers.txt 2016-05-22 16:57:47.000000000 +0200
@@ -1,6 +1,6 @@
#
# List of readers supported by the CCID driver
-# Generated: 2016-04-19
+# Generated: 2016-05-19
#
# DO NOT EDIT BY HAND
@@ -67,6 +67,7 @@
# Giesecke & Devrient GmbH
0x1059:0x0017:Giesecke & Devrient GmbH StarSign Crypto USB Token
+0x1059:0x0019:Giesecke & Devrient GmbH StarSign CUT S
# id3 Semiconductors
0x0B81:0x0200:id3 Semiconductors CL1356T
@@ -305,6 +306,9 @@
0x0BDA:0x0169:Generic USB2.0-CRW
0x048D:0x1366:Generic MultiCard Device
+# Generic USB
+0x076B:0x3A21:Generic USB Smart Card Reader
+
# German Privacy Foundation
0x20A0:0x4107:German Privacy Foundation Crypto Stick v1.2
@@ -328,6 +332,8 @@
# Hewlett-Packard
0x03F0:0x581D:Hewlett-Packard HP lt4112 Gobi 4G Module
+# HID
+
# HID Global
0x076B:0x3031:HID Global OMNIKEY 3x21 Smart Card Reader
0x076B:0x5022:HID Global OMNIKEY 5022 Smart Card Reader
@@ -757,6 +763,9 @@
#0x076B:0x3021:OMNIKEY AG CardMan 3021 (CardMan3021.txt)
#0x076B:0x3021:OMNIKEY AG CardMan 3121 (CardMan3121.txt)
+#0x076B:0x3A21:Generic USB Smart Card Reader (Generic_USB_Smart_Card_Reader.txt)
+#0x076B:0x3A21:HID AVIATOR Generic (HID_Aviator.txt)
+
#0x076B:0xA022:Precise Biometrics Sense MC (Precise_Sense_MC.txt)
#0x076B:0xA022:XIRING Teo (Teo.txt)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccid-1.4.23/src/ccid.c new/ccid-1.4.24/src/ccid.c
--- old/ccid-1.4.23/src/ccid.c 2016-04-19 21:11:16.000000000 +0200
+++ new/ccid-1.4.24/src/ccid.c 2016-05-22 16:57:47.000000000 +0200
@@ -71,6 +71,15 @@
case OZ776_7772:
ccid_descriptor->dwMaxDataRate = 9600;
break;
+
+ case ElatecTWN4:
+ /* use a timeout of 400 ms instead of 100 ms in CmdGetSlotStatus()
+ * used by CreateChannelByNameOrChannel()
+ * The reader answers after 280 ms if no tag is present */
+ case SCM_SCL011:
+ /* The SCM SCL011 reader needs 350 ms to answer */
+ ccid_descriptor->readTimeout = DEFAULT_COM_READ_TIMEOUT * 4;
+ break;
}
/* CCID */
@@ -458,6 +467,13 @@
*/
ccid_descriptor->bPINSupport = 0;
break;
+ case HID_AVIATOR:
+ /* The chip advertises pinpad but actually doesn't have one */
+ ccid_descriptor->bPINSupport = 0;
+ /* Firmware uses chaining */
+ ccid_descriptor->dwFeatures &= ~CCID_CLASS_EXCHANGE_MASK;
+ ccid_descriptor->dwFeatures |= CCID_CLASS_EXTENDED_APDU;
+ break;
#if 0
/* SCM SCR331-DI contactless */
@@ -511,6 +527,12 @@
ccid_descriptor->dwFeatures |= CCID_CLASS_EXTENDED_APDU;
}
break;
+
+ case ElatecTWN4:
+ case SCM_SCL011:
+ /* restore default timeout (modified in ccid_open_hack_pre()) */
+ ccid_descriptor->readTimeout = DEFAULT_COM_READ_TIMEOUT;
+ break;
}
/* Gemalto readers may report additional information */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccid-1.4.23/src/ccid.h new/ccid-1.4.24/src/ccid.h
--- old/ccid-1.4.23/src/ccid.h 2016-01-10 14:26:09.000000000 +0100
+++ new/ccid-1.4.24/src/ccid.h 2016-05-22 16:57:47.000000000 +0200
@@ -209,6 +209,9 @@
#define FEITIANR502DUAL 0x096E060D
#define MICROCHIP_SEC1100 0x04241104
#define CHERRY_KC1000SC 0x046A00A1
+#define ElatecTWN4 0x09D80427
+#define SCM_SCL011 0x04E65293
+#define HID_AVIATOR 0x076B3A21
#define VENDOR_GEMALTO 0x08E6
#define GET_VENDOR(readerID) ((readerID >> 16) & 0xFFFF)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccid-1.4.23/src/ccid_usb.c new/ccid-1.4.24/src/ccid_usb.c
--- old/ccid-1.4.23/src/ccid_usb.c 2016-04-19 21:11:16.000000000 +0200
+++ new/ccid-1.4.24/src/ccid_usb.c 2016-04-23 16:12:07.000000000 +0200
@@ -1251,14 +1251,14 @@
while (!completed)
{
- ret = libusb_handle_events(ctx);
+ ret = libusb_handle_events_completed(ctx, &completed);
if (ret < 0)
{
if (ret == LIBUSB_ERROR_INTERRUPTED)
continue;
libusb_cancel_transfer(transfer);
while (!completed)
- if (libusb_handle_events(ctx) < 0)
+ if (libusb_handle_events_completed(ctx, &completed) < 0)
break;
libusb_free_transfer(transfer);
DEBUG_CRITICAL2("libusb_handle_events failed: %s",
@@ -1378,7 +1378,7 @@
completed = 0;
while (!completed && !msExt->terminated)
{
- rv = libusb_handle_events(ctx);
+ rv = libusb_handle_events_completed(ctx, &completed);
if (rv < 0)
{
DEBUG_COMM2("libusb_handle_events err %d", rv);
@@ -1390,7 +1390,7 @@
while (!completed && !msExt->terminated)
{
- if (libusb_handle_events(ctx) < 0)
+ if (libusb_handle_events_completed(ctx, &completed) < 0)
break;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ccid-1.4.23/src/ifdhandler.c new/ccid-1.4.24/src/ifdhandler.c
--- old/ccid-1.4.23/src/ifdhandler.c 2016-01-10 14:26:09.000000000 +0100
+++ new/ccid-1.4.24/src/ifdhandler.c 2016-05-22 16:57:47.000000000 +0200
@@ -177,7 +177,10 @@
oldReadTimeout = ccid_descriptor->readTimeout;
/* 100 ms just to resync the USB toggle bits */
- ccid_descriptor->readTimeout = 100;
+ /* Do not use a fixed 100 ms value but compute it from the
+ * default timeout. It is now possible to use a different value
+ * by changing readTimeout in ccid_open_hack_pre() */
+ ccid_descriptor->readTimeout = ccid_descriptor->readTimeout * 100.0 / DEFAULT_COM_READ_TIMEOUT;
if ((IFD_COMMUNICATION_ERROR == CmdGetSlotStatus(reader_index, pcbuffer))
&& (IFD_COMMUNICATION_ERROR == CmdGetSlotStatus(reader_index, pcbuffer)))
@@ -593,7 +596,7 @@
if (ccid_desc->sIFD_serial_number)
{
strlcpy((char *)Value, ccid_desc->sIFD_serial_number, *Length);
- *Length = strlen((char *)Value);
+ *Length = strlen((char *)Value)+1;
}
else
{