aboutsummaryrefslogtreecommitdiffstats
path: root/scd/apdu.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2012-06-24scd: handle reader/token removal.scd-backport-2-0NIIBE Yutaka1-0/+1
* scd/apdu.c (pcsc_error_to_sw): PCSC_E_UNKNOWN_READER means SW_HOST_NO_READER.
2012-06-18scd: acquire lock in new_reader_slot.NIIBE Yutaka1-1/+24
* scd/apdu.c (new_reader_slot): Acquire lock. (open_ct_reader, open_pcsc_reader_direct, open_pcsc_reader_wrapped) (open_ccid_reader, open_rapdu_reader): Release lock. -- Fixes a test case of: No libpcsclite1 installed. Run gpg-agent Run command "gpg-connect-agent learn /bye" with no card/token Sometimes it fails: ERR 100663356 Not supported <SCD> While it should be always: ERR 100663404 Card error <SCD>
2012-06-18scd: move lock_slot, trylock_slot, unlock_slot functions.NIIBE Yutaka1-38/+38
* scd/apdu.c (lock_slot, trylock_slot, unlock_slot): Move. -- This is for upcoming changes.
2012-06-15scd: Fix for card change returning GPG_ERR_CARD_RESET.Werner Koch1-2/+1
* scd/apdu.c (apdu_connect): Do not test for zero atrlen. -- When gpg-agent prompts for insertion of a card this error would be returned. Co-authored-by: Ben Kibbey <[email protected]>
2012-06-15Merge ccid_driver_improvement branch. (backport)NIIBE Yutaka1-4/+4
* 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.
2012-06-15Add error log and debug log for pcsc_keypad_verify and pcsc_keypad_modify.NIIBE Yutaka1-4/+22
* scd/apdu.c (pcsc_keypad_verify): Add debug log and error log. (pcsc_keypad_modify): Likewise.
2012-06-15Fix pinpad input support for passphrase modification. (backport)NIIBE Yutaka1-10/+13
* apdu.c (pcsc_keypad_verify): Have dummy Lc field with value 0. (pcsc_keypad_modify): Likewise. (pcsc_keypad_modify): It's only for ISO7816_CHANGE_REFERENCE_DATA. bConfirmPIN value is determined by the parameter p0. * app-openpgp.c (do_change_pin): The flag use_keypad should be 0 when reset_mode is on, or resetcode is on. use_keypad only makes sense for iso7816_change_reference_data_kp. * iso7816.h (iso7816_put_data_kp): Remove. (iso7816_reset_retry_counter_kp): Remove. (iso7816_reset_retry_counter_with_rc_kp): Remove. (iso7816_change_reference_data_kp): Add an argument: IS_EXCHANGE. * iso7816.c (iso7816_put_data_kp): Remove. (iso7816_reset_retry_counter_kp): Remove. (iso7816_reset_retry_counter_with_rc_kp): Remove. (iso7816_change_reference_data_kp): Add an argument: IS_EXCHANGE.
2012-06-15scd: PC/SC pinpad support (pinpad input for modify pass phrase). (backport)NIIBE Yutaka1-0/+111
* iso7816.h (iso7816_change_reference_data_kp): Remove arguments of OLDCHV, OLDCHVLEN, NEWCHV, and NEWCHVLEN. * iso7816.c (iso7816_change_reference_data_kp): Call apdu_keypad_modify. (iso7816_change_reference_data): Don't call iso7816_change_reference_data_kp. * apdu.h (apdu_keypad_modify): New. * apdu.c (pcsc_keypad_modify, apdu_keypad_modify): New. (struct reader_table_s): New memeber function keypad_modify. (new_reader_slot, open_ct_reader, open_ccid_reader) (open_rapdu_reader): Initialize keypad_modify. * app-openpgp.c (do_change_pin): Handle keypad and call iso7816_change_reference_data_kp if it is the case.
2012-06-15scd: PC/SC pinpad support. (Backported from master.)NIIBE Yutaka1-3/+359
* iso7816.h (iso7816_verify_kp): Remove arguments of CHV and CHVLEN. * iso7816.c (iso7816_verify_kp): Call apdu_keypad_verify. Only handle thecase with PININFO. (iso7816_verify): Call apdu_send_simple. * app-openpgp.c (verify_a_chv, verify_chv3): Follow the change of iso7816_verify_kp. * app-nks.c (verify_pin): Likewise. * app-dinsig.c (verify_pin): Likewise. * apdu.c: Include "iso7816.h". (struct reader_table_s): New memeber function keypad_verify. Add fields verify_ioctl and modify_ioctl in pcsc. (CM_IOCTL_GET_FEATURE_REQUEST, FEATURE_VERIFY_PIN_DIRECT) (FEATURE_MODIFY_PIN_DIRECT): New. (pcsc_control): New. (control_pcsc_direct, control_pcsc_wrapped, control_pcsc) (check_pcsc_keypad, pcsc_keypad_verify): New. (ccid_keypad_verify, apdu_keypad_verify): New. (new_reader_slot): Initialize with check_pcsc_keypad, pcsc_keypad_verify, verify_ioctl and modify_ioctl. (open_ct_reader): Initialize keypad_verify with NULL. (open_ccid_reader): Initialize keypad_verify. (open_rapdu_reader): Initialize keypad_verify with NULL. (apdu_open_reader): Initialize pcsc_control. * pcsc-wrapper.c (load_pcsc_driver): Initialize pcsc_control. (handle_control): New. (main): Handle the case 6 of handle_control.
2012-06-12scd fixes on error.NIIBE Yutaka1-1/+2
* scd/apdu.c (open_pcsc_reader_wrapped): Show error number. * scd/command.c (get_reader_slot): Return -1 on error.
2012-06-08Fix detection of card removal and insertion.Werner Koch1-2/+13
* scd/apdu.c (apdu_connect): Return status codes for no card available and inactive card. * scd/command.c (TEST_CARD_REMOVAL): Also test for GPG_ERR_CARD_RESET. (open_card): Map apdu_connect status to GPG_ERR_CARD_RESET.
2011-08-04Removed some set but unused variables.Werner Koch1-27/+28
2010-05-03Collected changesWerner Koch1-3/+17
2009-09-03Fix for extended length Le in decipherWerner Koch1-2/+0
2009-07-21Make bug reporting address easier changeable.Werner Koch1-0/+1
2009-07-16Add code to better handle unplugging of a reader.Werner Koch1-1/+28
2009-07-13* ccid-driver.c (struct ccid_driver_s): Add fields last_progress,Werner Koch1-1/+36
progress_cb and progress_cb_arg. (ccid_set_progress_cb): New. (print_progress): New. (ccid_transceive): Call print_progress for wait time extensions. * apdu.c (struct reader_table_s): Add field set_progress_cb. (new_reader_slot): Clear that field. (open_ccid_reader): Set it to .. (set_progress_cb_ccid_reader): ... new fucntion. * app.c (print_progress_line): New. (lock_reader): Add arg CTRL to set a progress callback and change all callers to provide it. (unlock_reader): Remove the progress callback.
2009-06-29Reworked the estream memory buffer allocation.Werner Koch1-0/+3
Committed already posted patches for the v2 card.
2009-05-20Make PIN changing code work for v2 cards.Werner Koch1-3/+3
2009-05-13Improved smartcard robustness.Werner Koch1-24/+77
2009-05-13Print keyid in gpg --list-packets.Werner Koch1-2/+2
Add some not yet code to app-nks.c Changed batch mode expiration time computation
2009-05-08More support for Netkey cards.Werner Koch1-11/+44
Small changes to teh CCID driver. Support 2048 bit OpenPGP cards.
2009-03-30Implement decryption for TCOS 3 cards.Werner Koch1-57/+135
2009-03-26Signing using Netkey 3 cards does now work.Werner Koch1-2/+5
2009-03-19Make sure not to leak file descriptors if running gpg-agent with aWerner Koch1-11/+2
command. Restore the signal mask to solve a problem in Mono.
2009-02-25Fixed a nasty bug in scdaemon which led to a card reset if the card wasWerner Koch1-6/+28
inserted during scdaemon startup and a connection was made before the ticker had a chance to run. Add some stuff for better debugging.
2009-01-08Add limited support for NetKey 3.0 cards.Werner Koch1-6/+6
2009-01-05Fix card change detection.Werner Koch1-2/+3
2008-12-18Fixed some card related problems.Werner Koch1-16/+12
2008-10-20Marked all unused args on non-W32 platforms.Werner Koch1-0/+14
2008-10-15Made scdaemon more robust on Windows.Werner Koch1-4/+0
2008-10-14SCD changes for PC/SC under W32.Werner Koch1-399/+579
2008-09-282008-09-28 Marcus Brinkmann <[email protected]>Marcus Brinkmann1-2/+2
* apdu.c (pcsc_get_status): Fix last change.
2008-09-23Marcus Brinkmann <[email protected]>Marcus Brinkmann1-0/+7
* apdu.c (pcsc_get_status): Be more relaxed with the usable flag under Windows. M scd/ChangeLog M scd/apdu.c
2008-09-23Support the Certifciate DO of the v2 OpenPGP cards.Werner Koch1-50/+100
2008-08-11Fix APDU buffer problem under MAC OS.Werner Koch1-6/+6
2007-08-01Applied exact length hack.Werner Koch1-2/+11
2007-07-04Changed to GPLv3.Werner Koch1-4/+2
Removed intl/.
2007-06-14A whole bunch of changes to allow building for Windows.Werner Koch1-0/+2
See the ChangeLogs for details.
2007-06-06First steps towards supporting W32.Werner Koch1-1/+0
This is mainly source code reorganization. Update gnulib. g10/ does currently not build.
2007-03-07The Cherry XX44 keyboard's PINpad does now work.Werner Koch1-1/+1
DINSIG and NKS card applications are now also PIN pad aware.
2006-11-28Preparing 2.0.1Werner Koch1-2/+2
2006-11-21No more warnings for AMD64 (at least when cross-compiling). Thus tehre is aWerner Koch1-1/+1
good chance that gpg2 will now work. Other cleanups. Updated gettext.
2006-11-20Made some PIN pads work.Werner Koch1-6/+16
Some cleanups for 64 bit CPUs.
2006-10-17Pth tweaks and improved estream.cWerner Koch1-1/+1
2006-09-06The big Assuan error code removal.Werner Koch1-1/+2
2006-04-11Added command APDUWerner Koch1-2/+2
2006-03-01Fixed card removal problemsWerner Koch1-2/+2
2005-12-06Print warning for missing pcsc-wrapperWerner Koch1-1/+9
2005-11-28Preparing an interim releaseWerner Koch1-38/+138