From ce4bdfd46b9942116d0d1a1247dd4b020e2737a8 Mon Sep 17 00:00:00 2001 From: NIIBE Yutaka Date: Thu, 5 Jan 2012 11:40:58 +0900 Subject: [PATCH] Fix pinpad entry in ccid-driver. * scd/ccid-driver.c (ccid_transceive_secure): Let it have three messages, always. Fixe bMsgIndex1-3. --- scd/ccid-driver.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/scd/ccid-driver.c b/scd/ccid-driver.c index 2f8be56fd..2885487e1 100644 --- a/scd/ccid-driver.c +++ b/scd/ccid-driver.c @@ -3214,7 +3214,7 @@ ccid_transceive_secure (ccid_driver_t handle, if (apdu_buf[1] == 0x20) msg[msglen++] = 0xff; /* bNumberMessage: Default. */ else - msg[msglen++] = apdu_buf[2] == 0 ? 0x03 : 0x01; /* bNumberMessage. */ + msg[msglen++] = 0x03; /* bNumberMessage. */ msg[msglen++] = 0x09; /* wLangId-Low: English FIXME: use the first entry. */ msg[msglen++] = 0x04; /* wLangId-High. */ @@ -3223,12 +3223,9 @@ ccid_transceive_secure (ccid_driver_t handle, msg[msglen++] = 0; /* bMsgIndex. */ else { - msg[msglen++] = 1; /* bMsgIndex1. */ - if (apdu_buf[2] == 0) - { - msg[msglen++] = 2; /* bMsgIndex2. */ - msg[msglen++] = 3; /* bMsgIndex3. */ - } + msg[msglen++] = 0; /* bMsgIndex1. */ + msg[msglen++] = 1; /* bMsgIndex2. */ + msg[msglen++] = 2; /* bMsgIndex3. */ } /* bTeoProlog follows: */