Fix eToken support (#2014312)

This commit is contained in:
Jakub Jelen 2021-10-15 09:55:46 +02:00
parent 5e67969650
commit f7b4d977a9
2 changed files with 96 additions and 0 deletions

94
ccid-1.4.36-etokent.patch Normal file
View File

@ -0,0 +1,94 @@
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)
--
GitLab
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;
}
--
GitLab

View File

@ -13,6 +13,7 @@ Source1: https://ccid.apdu.fr/files/ccid-%{version}.tar.bz2.asc
Source2: gpgkey-F5E11B9FFE911146F41D953D78A1B4DFE8F9C57E.gpg Source2: gpgkey-F5E11B9FFE911146F41D953D78A1B4DFE8F9C57E.gpg
Patch0: ccid-1.4.26-omnikey-3121.patch Patch0: ccid-1.4.26-omnikey-3121.patch
Patch1: ccid-1.4.34-maxreaders.patch Patch1: ccid-1.4.34-maxreaders.patch
Patch2: ccid-1.4.36-etokent.patch
BuildRequires: make BuildRequires: make
BuildRequires: perl-interpreter BuildRequires: perl-interpreter
@ -40,6 +41,7 @@ gpgv2 --keyring %{SOURCE2} %{SOURCE1} %{SOURCE0}
%setup -q -n ccid-%{version} %setup -q -n ccid-%{version}
%patch0 -p1 -b .omnikey %patch0 -p1 -b .omnikey
%patch1 -p0 -b .maxreaders %patch1 -p0 -b .maxreaders
%patch2 -p1 -b .etoken
%build %build
%configure --enable-twinserial %configure --enable-twinserial