diff --git a/0001-Fix-SafeNet-eToken-5110-SC-issue.patch b/0001-Fix-SafeNet-eToken-5110-SC-issue.patch new file mode 100644 index 0000000000000000000000000000000000000000..734d4f8373f0db2b61a91f07e3d45d977b570c13 --- /dev/null +++ b/0001-Fix-SafeNet-eToken-5110-SC-issue.patch @@ -0,0 +1,57 @@ +From b48e1e697010431b7f03d4ecfe917ceee95e2c64 Mon Sep 17 00:00:00 2001 +From: Ludovic Rousseau +Date: Tue, 7 Sep 2021 14:06:46 +0200 +Subject: [PATCH] Fix SafeNet eToken 5110 SC issue + +Some SafeNet eToken 5100 (but not all) have issues when IFSD is negotiated. +For some APDU the communication stops and the token returns 0 bytes. + +It is the case with the SafeNet eToken 5110 SC with +ATR: 3B D5 18 00 81 31 3A 7D 80 73 C8 21 10 30 +and PC/SC name "SafeNet eToken 5100 [eToken 5110 SC]" + +Another SafeNet eToken 5100 with +ATR: 3B D5 18 00 81 31 FE 7D 80 73 C8 21 10 F4 +and PC/SC name "SafeNet eToken 5100 [Main Interface]" +does NOT have problems with the the IFSD negotiation. + +This fixes Debian bug #993647 +https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=993647 +--- + src/ccid.c | 7 +++++++ + src/ccid.h | 1 + + 2 files changed, 8 insertions(+) + +diff --git a/src/ccid.c b/src/ccid.c +index efef240..0d7ba54 100644 +--- a/src/ccid.c ++++ b/src/ccid.c +@@ -576,6 +576,13 @@ int ccid_open_hack_post(unsigned int reader_index) + * have one */ + ccid_descriptor->bPINSupport = 0; + break; ++ ++ case SAFENET_ETOKEN_5100: ++ /* the old SafeNet eToken 5110 SC (firmware 0.12) does not ++ * like IFSD negotiation. So disable it. */ ++ if (0x0012 == ccid_descriptor->IFD_bcdDevice) ++ ccid_descriptor->dwFeatures |= CCID_CLASS_AUTO_IFSD; ++ break; + } + + /* Gemalto readers may report additional information */ +diff --git a/src/ccid.h b/src/ccid.h +index b28f0c1..00ce07a 100644 +--- a/src/ccid.h ++++ b/src/ccid.h +@@ -239,6 +239,7 @@ typedef struct + #define IDENTIV_uTrust3701F 0x04E65791 + #define IDENTIV_uTrust4701F 0x04E65724 + #define BIT4ID_MINILECTOR 0x25DD3111 ++#define SAFENET_ETOKEN_5100 0x05290620 + + #define VENDOR_GEMALTO 0x08E6 + #define GET_VENDOR(readerID) ((readerID >> 16) & 0xFFFF) +-- +2.33.0 + diff --git a/0002-Fix-SafeNet-eToken-5110-SC-issue-firmware-0.13.patch b/0002-Fix-SafeNet-eToken-5110-SC-issue-firmware-0.13.patch new file mode 100644 index 0000000000000000000000000000000000000000..84e04f2844aa16464842f9729c8d3780009a8860 --- /dev/null +++ b/0002-Fix-SafeNet-eToken-5110-SC-issue-firmware-0.13.patch @@ -0,0 +1,35 @@ +From 26ad96076523472e9d0d383d014e7b1ad241fd5b Mon Sep 17 00:00:00 2001 +From: Ludovic Rousseau +Date: Wed, 8 Sep 2021 11:28:48 +0200 +Subject: [PATCH] Fix SafeNet eToken 5110 SC issue (firmware 0.13) + +The SafeNet eToken 5110 SC with firmware 0.13 has the same problem as +the token with firmware 0.12. +We use the same oslution to fix the problem. + +Thanks again to Vladimir K for the bug report. +--- + src/ccid.c | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/src/ccid.c b/src/ccid.c +index 0d7ba54..21a2fe8 100644 +--- a/src/ccid.c ++++ b/src/ccid.c +@@ -578,9 +578,10 @@ int ccid_open_hack_post(unsigned int reader_index) + break; + + case SAFENET_ETOKEN_5100: +- /* the old SafeNet eToken 5110 SC (firmware 0.12) does not +- * like IFSD negotiation. So disable it. */ +- if (0x0012 == ccid_descriptor->IFD_bcdDevice) ++ /* the old SafeNet eToken 5110 SC (firmware 0.12 & 0.13) ++ * does not like IFSD negotiation. So disable it. */ ++ if ((0x0012 == ccid_descriptor->IFD_bcdDevice) ++ || (0x0013 == ccid_descriptor->IFD_bcdDevice)) + ccid_descriptor->dwFeatures |= CCID_CLASS_AUTO_IFSD; + break; + } +-- +2.33.0 + diff --git a/ccid.spec b/ccid.spec index c62f60f2d16f1a28a978b09e8408f5c2be0edc71..0cc109159edb452d38ae4f8793055378fabe26a1 100644 --- a/ccid.spec +++ b/ccid.spec @@ -2,13 +2,16 @@ Name: ccid Version: 1.4.36 -Release: 1 +Release: 2 Summary: Provide a generic USB CCID driver and ICCD License: LGPLv2+ URL: https://ccid.apdu.fr/files/ Source0: https://ccid.apdu.fr/files/ccid-%{version}.tar.bz2 +Patch1: 0001-Fix-SafeNet-eToken-5110-SC-issue.patch +Patch2: 0002-Fix-SafeNet-eToken-5110-SC-issue-firmware-0.13.patch + BuildRequires: perl-interpreter perl-Getopt-Long libusb1-devel gnupg2 gcc BuildRequires: pcsc-lite-devel >= 1.8.9 Requires(post): systemd @@ -48,6 +51,9 @@ cp -p src/openct/LICENSE LICENSE.openct %config(noreplace) %{_sysconfdir}/reader.conf.d/libccidtwin %changelog +* Thu Oct 20 2022 liusirui - 1.4.36-2 +- backport some patches to fix some problems. + * Tue Nov 23 2021 Li Jinlin - 1.4.36-1 - update to 1.4.36 version