1
0
Fork 0
mirror of git://git.gnupg.org/gnupg.git synced 2025-07-03 22:56:33 +02:00

Merge ccid_driver_improvement branch. (backport)

* scd/apdu.c (ccid_keypad_operation): Rename from ccid_keypad_verify.
(open_ccid_reader): Use ccid_keypad_operation for verify and modify.

* scd/ccid-driver.c (VENDOR_VASCO, VASCO_920): New.
(ccid_transceive_apdu_level): Permit sending packet where
apdulen <= 289.  Support receiving packets in a chain.
(ccid_transceive_secure): Maximum is 15 for VASCO DIGIPASS 920.
Support keypad_modify method such as CHANGE_REFERENCE_DATA: 0x24.
This commit is contained in:
NIIBE Yutaka 2012-01-06 13:50:21 +09:00
parent 2f90d09902
commit 262a3b2336
2 changed files with 110 additions and 32 deletions

View file

@ -2339,8 +2339,8 @@ check_ccid_keypad (int slot, int command, int pin_mode,
static int
ccid_keypad_verify (int slot, int class, int ins, int p0, int p1,
struct pininfo_s *pininfo)
ccid_keypad_operation (int slot, int class, int ins, int p0, int p1,
struct pininfo_s *pininfo)
{
unsigned char apdu[4];
int err, sw;
@ -2411,8 +2411,8 @@ open_ccid_reader (const char *portstr)
reader_table[slot].check_keypad = check_ccid_keypad;
reader_table[slot].dump_status_reader = dump_ccid_reader_status;
reader_table[slot].set_progress_cb = set_progress_cb_ccid_reader;
reader_table[slot].keypad_verify = ccid_keypad_verify;
reader_table[slot].keypad_modify = NULL;
reader_table[slot].keypad_verify = ccid_keypad_operation;
reader_table[slot].keypad_modify = ccid_keypad_operation;
/* Our CCID reader code does not support T=0 at all, thus reset the
flag. */
reader_table[slot].is_t0 = 0;