scd: change default value of pinpad maxlen.
authorNIIBE Yutaka <gniibe@fsij.org>
Thu, 21 Mar 2013 00:04:13 +0000 (09:04 +0900)
committerNIIBE Yutaka <gniibe@fsij.org>
Thu, 21 Mar 2013 00:09:41 +0000 (09:09 +0900)
* scd/apdu.c (pcsc_pinpad_verify, pcsc_pinpad_modify): Default value
of maxlen for pinpad input is now 15 (was: 25).

* scd/ccid-driver.c (ccid_transceive_secure): Likewise.

--

For newer PC/SC, it is better to use FEATURE_GET_TLV_PROPERTIES to get
bMaxPINSize.

scd/apdu.c
scd/ccid-driver.c

index 6824ded..e920678 100644 (file)
@@ -2056,7 +2056,7 @@ pcsc_pinpad_verify (int slot, int class, int ins, int p0, int p1,
   if (!pininfo->minlen)
     pininfo->minlen = 1;
   if (!pininfo->maxlen)
-    pininfo->maxlen = 25;
+    pininfo->maxlen = 15;
 
   /* Note that the 25 is the maximum value the SPR532 allows.  */
   if (pininfo->minlen < 1 || pininfo->minlen > 25
@@ -2139,7 +2139,7 @@ pcsc_pinpad_modify (int slot, int class, int ins, int p0, int p1,
   if (!pininfo->minlen)
     pininfo->minlen = 1;
   if (!pininfo->maxlen)
-    pininfo->maxlen = 25;
+    pininfo->maxlen = 15;
 
   /* Note that the 25 is the maximum value the SPR532 allows.  */
   if (pininfo->minlen < 1 || pininfo->minlen > 25
index da5fac9..8c91767 100644 (file)
@@ -3357,7 +3357,7 @@ ccid_transceive_secure (ccid_driver_t handle,
   if (!pininfo->minlen)
     pininfo->minlen = 1;
   if (!pininfo->maxlen)
-    pininfo->maxlen = 25;
+    pininfo->maxlen = 15;
 
   /* Note that the 25 is the maximum value the SPR532 allows.  */
   if (pininfo->minlen < 1 || pininfo->minlen > 25
@@ -3371,14 +3371,15 @@ ccid_transceive_secure (ccid_driver_t handle,
     {
     case VENDOR_SCM:  /* Tested with SPR 532. */
     case VENDOR_KAAN: /* Tested with KAAN Advanced (1.02). */
-    case VENDOR_FSIJ: /* Tested with the gnuk code (2011-01-05).  */
+    case VENDOR_FSIJ: /* Tested with Gnuk (0.21). */
+      pininfo->maxlen = 25;
       enable_varlen = 1;
       break;
     case VENDOR_VASCO: /* Tested with DIGIPASS 920 */
       enable_varlen = 1;
-      pininfo->maxlen = 15;
       break;
     case VENDOR_CHERRY:
+      pininfo->maxlen = 25;
       enable_varlen = 1;
       /* The CHERRY XX44 keyboard echos an asterisk for each entered
          character on the keyboard channel.  We use a special variant