scd: change default value of pinpad maxlen

NIIBE Yutaka gniibe at fsij.org
Tue Mar 19 03:44:06 CET 2013


Hello,

This is a change for STABLE-BRANCH-2-0 and master.

The change in ccid-driver.c is to change default pinmax to 15, and let
known-reader set specific value.

The change in apdu.c is to change default pinmax to 15 (from 25),
which is more likely.  This is incompatible change, but there is no
released version which support pinpad input with PC/SC yet.

The code for PC/SC is better to use the new API of PC/SC:
FEATURE_GET_TLV_PROPERTIES and bMaxPINSize.  I'll try that in near
future.

I'll apply this, if no objections.

diff --git a/scd/apdu.c b/scd/apdu.c
index 196d58b..268c2fa 100644
--- a/scd/apdu.c
+++ b/scd/apdu.c
@@ -2086,7 +2086,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
@@ -2167,7 +2167,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
diff --git a/scd/ccid-driver.c b/scd/ccid-driver.c
index dd9fabe..c3a66fa 100644
--- a/scd/ccid-driver.c
+++ b/scd/ccid-driver.c
@@ -3358,7 +3358,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
@@ -3373,13 +3373,14 @@ 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 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
-- 





More information about the Gnupg-devel mailing list