mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-03 22:56:33 +02:00
SCD: Add option enable-keypad-varlen and support for GEMPC_PINPAD.
* scd/scdaemon.h (opt): Add enable_keypad_varlen. * scd/scdaemon.c (cmd_and_opt_values): Add oEnableKeypadVarlen. (opts, main): Add oEnableKeypadVarlen. * scd/ccid-driver.c (GEMPC_PINPAD): New. (ccid_transceive_secure): Add enable_varlen handling. Enable GEMPC_PINPAD. -- Note that GEMPC_PINPAD doesn't support variable length keypad input. The feature of fixed length keypad input will be added soon.
This commit is contained in:
parent
2dbd347fbe
commit
7c110e997a
3 changed files with 16 additions and 0 deletions
|
@ -222,6 +222,7 @@ enum {
|
|||
#define SCM_SPR532 0xe003
|
||||
#define CHERRY_ST2000 0x003e
|
||||
#define VASCO_920 0x0920
|
||||
#define GEMPC_PINPAD 0x3478
|
||||
|
||||
/* A list and a table with special transport descriptions. */
|
||||
enum {
|
||||
|
@ -3308,6 +3309,7 @@ ccid_transceive_secure (ccid_driver_t handle,
|
|||
size_t dummy_nresp;
|
||||
int testmode;
|
||||
int cherry_mode = 0;
|
||||
int enable_varlen = opt.enable_keypad_varlen;
|
||||
|
||||
testmode = !resp && !nresp;
|
||||
|
||||
|
@ -3346,11 +3348,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). */
|
||||
enable_varlen = 1;
|
||||
break;
|
||||
case VENDOR_VASCO: /* Tested with DIGIPASS 920 */
|
||||
enable_varlen = 1;
|
||||
pinlen_max = 15;
|
||||
break;
|
||||
case VENDOR_CHERRY:
|
||||
enable_varlen = 1;
|
||||
/* The CHERRY XX44 keyboard echos an asterisk for each entered
|
||||
character on the keyboard channel. We use a special variant
|
||||
of PC_to_RDR_Secure which directs these characters to the
|
||||
|
@ -3361,6 +3366,11 @@ ccid_transceive_secure (ccid_driver_t handle,
|
|||
if (handle->id_product != CHERRY_ST2000)
|
||||
cherry_mode = 1;
|
||||
break;
|
||||
case VENDOR_GEMPC:
|
||||
enable_varlen = 0;
|
||||
if (handle->id_product == GEMPC_PINPAD)
|
||||
break;
|
||||
/* fall through */
|
||||
default:
|
||||
return CCID_DRIVER_ERR_NOT_SUPPORTED;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue