[git] GnuPG - branch, master, updated. gnupg-2.1.5-18-g444e923
by NIIBE Yutaka
cvs at cvs.gnupg.org
Mon Jun 22 07:36:13 CEST 2015
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The GNU Privacy Guard".
The branch, master has been updated
via 444e9232aa9e00aacd939cbf7bdb881b550dfebe (commit)
from 0948c4f217308ffa0ec61ce189d387fd61b02bbd (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 444e9232aa9e00aacd939cbf7bdb881b550dfebe
Author: NIIBE Yutaka <gniibe at fsij.org>
Date: Mon Jun 22 14:31:25 2015 +0900
scd: Fix Cherry ST-2000 support for pinpad input.
* scd/apdu.c (pcsc_vendor_specific_init): Set pinmax to 15.
* scd/ccid-driver.c (ccid_transceive_secure): Add zero for the
template of APDU.
--
GnuPG-bug-id: 2003, 2004
diff --git a/scd/apdu.c b/scd/apdu.c
index 189fd4a..82b2e1f 100644
--- a/scd/apdu.c
+++ b/scd/apdu.c
@@ -1825,8 +1825,12 @@ pcsc_vendor_specific_init (int slot)
reader_table[slot].is_spr532 = 1;
reader_table[slot].pinpad_varlen_supported = 1;
}
- else if (strstr (reader_table[slot].rdrname, "ST-2xxx")
- || strstr (reader_table[slot].rdrname, "cyberJack")
+ else if (strstr (reader_table[slot].rdrname, "ST-2xxx"))
+ {
+ reader_table[slot].pcsc.pinmax = 15;
+ reader_table[slot].pinpad_varlen_supported = 1;
+ }
+ else if (strstr (reader_table[slot].rdrname, "cyberJack")
|| strstr (reader_table[slot].rdrname, "DIGIPASS")
|| strstr (reader_table[slot].rdrname, "Gnuk")
|| strstr (reader_table[slot].rdrname, "KAAN"))
@@ -1891,8 +1895,12 @@ pcsc_vendor_specific_init (int slot)
reader_table[slot].is_spr532 = 1;
reader_table[slot].pinpad_varlen_supported = 1;
}
- else if ((vendor == 0x046a && product == 0x003e) /* Cherry ST-2xxx */
- || vendor == 0x0c4b /* Tested with Reiner cyberJack GO */
+ else if (vendor == 0x046a && product == 0x003e) /* Cherry ST-2xxx */
+ {
+ reader_table[slot].pcsc.pinmax = 15;
+ reader_table[slot].pinpad_varlen_supported = 1;
+ }
+ else if (vendor == 0x0c4b /* Tested with Reiner cyberJack GO */
|| vendor == 0x1a44 /* Tested with Vasco DIGIPASS 920 */
|| vendor == 0x234b /* Tested with FSIJ Gnuk Token */
|| vendor == 0x0d46 /* Tested with KAAN Advanced??? */)
diff --git a/scd/ccid-driver.c b/scd/ccid-driver.c
index 4f0a489..fe1f679 100644
--- a/scd/ccid-driver.c
+++ b/scd/ccid-driver.c
@@ -3316,6 +3316,7 @@ ccid_transceive_secure (ccid_driver_t handle,
size_t dummy_nresp;
int testmode;
int cherry_mode = 0;
+ int add_zero = 0;
int enable_varlen = 0;
testmode = !resp && !nresp;
@@ -3357,7 +3358,7 @@ ccid_transceive_secure (ccid_driver_t handle,
enable_varlen = 1;
break;
case VENDOR_CHERRY:
- pininfo->maxlen = 25;
+ pininfo->maxlen = 15;
enable_varlen = 1;
/* The CHERRY XX44 keyboard echos an asterisk for each entered
character on the keyboard channel. We use a special variant
@@ -3366,6 +3367,7 @@ ccid_transceive_secure (ccid_driver_t handle,
Lc byte to the APDU. It seems that it will be replaced with
the actual length instead of being appended before the APDU
is send to the card. */
+ add_zero = 1;
if (handle->id_product != CHERRY_ST2000)
cherry_mode = 1;
break;
@@ -3488,7 +3490,7 @@ ccid_transceive_secure (ccid_driver_t handle,
msg[msglen++] = apdu_buf[1]; /* INS */
msg[msglen++] = apdu_buf[2]; /* P1 */
msg[msglen++] = apdu_buf[3]; /* P2 */
- if (cherry_mode)
+ if (add_zero)
msg[msglen++] = 0;
else if (pininfo->fixedlen != 0)
{
-----------------------------------------------------------------------
Summary of changes:
scd/apdu.c | 16 ++++++++++++----
scd/ccid-driver.c | 6 ++++--
2 files changed, 16 insertions(+), 6 deletions(-)
hooks/post-receive
--
The GNU Privacy Guard
http://git.gnupg.org
More information about the Gnupg-commits
mailing list