You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
2.9 KiB
94 lines
2.9 KiB
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 |
|
|
|
|
|
|