w32: Add icons and version information.
[gnupg.git] / scd / ccid-driver.c
index ccf579c..42a219f 100644 (file)
@@ -212,9 +212,10 @@ enum {
   VENDOR_OMNIKEY= 0x076b,
   VENDOR_GEMPC  = 0x08e6,
   VENDOR_VEGA   = 0x0982,
+  VENDOR_REINER = 0x0c4b,
   VENDOR_KAAN   = 0x0d46,
+  VENDOR_VASCO  = 0x1a44,
   VENDOR_FSIJ   = 0x234b,
-  VENDOR_VASCO  = 0x1a44
 };
 
 /* Some product ids.  */
@@ -227,6 +228,7 @@ enum {
 #define VASCO_920       0x0920
 #define GEMPC_PINPAD    0x3478
 #define VEGA_ALPHA      0x0008
+#define CYBERJACK_GO    0x0504
 
 /* A list and a table with special transport descriptions. */
 enum {
@@ -2840,7 +2842,7 @@ ccid_transceive_apdu_level (ccid_driver_t handle,
   /* The maximum length for a short APDU T=1 block is 261.  For an
      extended APDU T=1 block the maximum length 65544; however
      extended APDU exchange level is not fully supported yet.  */
-  if (apdulen > 289)
+  if (apdulen > sizeof (send_buffer) - 10)
     return CCID_DRIVER_ERR_INV_VALUE; /* Invalid length. */
   
   msg[0] = PC_to_RDR_XfrBlock;
@@ -3358,7 +3360,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 +3375,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 Gnuk (0.21). */
+      pininfo->maxlen = 25;
       enable_varlen = 1;
       break;
+    case VENDOR_REINER: /* Tested with cyberJack go */
     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