scd: Fix ccid-driver timeout for OpenPGPcard v2.1.
[gnupg.git] / scd / ccid-driver.c
index 8a68a44..8f9c1bd 100644 (file)
 */
 #define CCID_MAX_BUF (2048+7+10)
 
+/* CCID command timeout.  OpenPGPcard v2.1 requires timeout of 13 seconds.  */
+#define CCID_CMD_TIMEOUT (13*1000)
+
 /* Depending on how this source is used we either define our error
    output to go to stderr or to the jnlib based logging functions.  We
    use the latter when GNUPG_MAJOR_VERSION is defines or when both,
@@ -2885,7 +2888,7 @@ ccid_transceive_apdu_level (ccid_driver_t handle,
       apdu_len -= apdu_part_len;
 
       rc = bulk_in (handle, msg, sizeof msg, &msglen,
-                    RDR_to_PC_DataBlock, seqno, 5000, 0);
+                    RDR_to_PC_DataBlock, seqno, CCID_CMD_TIMEOUT, 0);
       if (rc)
         return rc;
 
@@ -2920,7 +2923,7 @@ ccid_transceive_apdu_level (ccid_driver_t handle,
         return rc;
 
       rc = bulk_in (handle, msg, sizeof msg, &msglen,
-                    RDR_to_PC_DataBlock, seqno, 5000, 0);
+                    RDR_to_PC_DataBlock, seqno, CCID_CMD_TIMEOUT, 0);
       if (rc)
         return rc;
     }
@@ -3129,7 +3132,7 @@ ccid_transceive (ccid_driver_t handle,
       msg = recv_buffer;
       rc = bulk_in (handle, msg, sizeof recv_buffer, &msglen,
                     via_escape? RDR_to_PC_Escape : RDR_to_PC_DataBlock,
-                    seqno, 5000, 0);
+                    seqno, CCID_CMD_TIMEOUT, 0);
       if (rc)
         return rc;