!16 回合一些上游社区bugfix补丁

From: @liusirui91 
Reviewed-by: @liuzhiqiang26 
Signed-off-by: @liuzhiqiang26
This commit is contained in:
openeuler-ci-bot 2022-10-21 09:35:10 +00:00 committed by Gitee
commit 14bc6a3172
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
3 changed files with 99 additions and 1 deletions

View File

@ -0,0 +1,57 @@
From b48e1e697010431b7f03d4ecfe917ceee95e2c64 Mon Sep 17 00:00:00 2001
From: Ludovic Rousseau <ludovic.rousseau@free.fr>
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

View File

@ -0,0 +1,35 @@
From 26ad96076523472e9d0d383d014e7b1ad241fd5b Mon Sep 17 00:00:00 2001
From: Ludovic Rousseau <ludovic.rousseau@free.fr>
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

View File

@ -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 <liusirui@huawei.com> - 1.4.36-2
- backport some patches to fix some problems.
* Tue Nov 23 2021 Li Jinlin <lijinlin3@huawei.com> - 1.4.36-1
- update to 1.4.36 version